猿记录

一个记录、分享的博客

您的位置:主页 > 技术专栏 > node >

node + express + mysql 完成注册登录

2017-09-29 16:59:36 作者:yxl 次阅读 node

1、首先安装node express
2、简单的项目初始化
进入你的nodejs安装路径下边,如图,然后执行命令  express -e test  (这里把项目名设置为test)  -e表示用的模板语法是ejs 默认是jade
3、初始化完成后,安装依赖npm install 
4、然后执行npm install   

如此一来,项目初始已经完成,可以运行一下项目 npm start 看是否正常。


5、项目创建成功之后,生成四个文件夹,主文件app.js与配置信息文件packetage.json

bin是项目的启动文件,配置以什么方式启动项目,默认 npm start

public是项目的静态文件,放置js css img等文件

routes是项目的路由信息文件,控制地址路由

views是视图文件,放置模板文件ejs或jade等(其实就相当于html形式文件啦~)

express这样的MVC框架模式,是一个Web项目的基本构成

6、接下来看下入口文件app.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');//请求网页的logo
var logger = require('morgan');//在控制台中,显示req请求的信息
var cookieParser = require('cookie-parser');//这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
var bodyParser = require('body-parser');//node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。

// 路由信息(接口地址),存放在routes的根目录
var routes = require('./routes/index');
var app = express();

var app = express();

// view engine setup 模板开始
app.set('views', path.join(__dirname, 'views'));//设置视图根目录
app.engine("html",require("ejs").__express); // or app.engine("html",require("ejs").renderFile);
// app.set('view engine', 'ejs');//设置视图格式(本人不太喜欢用jade,接下来会交大家使用html格式的文件)
app.set('view engine', 'html');//设置视图格式(本人不太喜欢用jade,接下来会交大家使用html格式的文件)

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
// 载入中间件
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

//配置路由,('自定义路径',上面设置的接口地址)
app.use('/', routes);
app.use('/login', routes);//登录
app.use('/register', routes);//注册
app.use('/home', routes);//
app.use('/logout', routes);//退出


// catch 404 and forward to error handler 错误处理
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
console.log( err.message );

// render the error page
res.status(err.status || 500);
res.render('error');
});

module.exports = app;

7、配置文件

var mysql = require('mysql');
//创建连接
var connection = mysql.createConnection({
host : '127.0.0.1',
user : 'root',
password : 'root',
database : 'test'
});
//执行创建连接
connection.connect();

exports.connection = connection;

8、在views文件夹下创建index.html login.html register.html home.html
9、index.js

var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var connectionConfig = require('./config'),
connection = connectionConfig.connection;

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});

/* GET login page. */
router.route("/login").get(function(req,res){ // 到达此路径则渲染login文件,并传出title值供 login.html使用
res.render("login",{title:'User Login'});
}).post(function(req,res){
var name = req.body.name;
var pwd = req.body.pwd;
var sql = "SELECT * FROM name where name="+name+" and pwd="+pwd;
console.log( sql );

var data = {
msg:'',
status:1
}

connection.query(sql,function (err, result) {
if(err){
data.msg = '登录失败';
data.status = 0;
res.send(JSON.stringify(data));
return;
}
console.log(result);
 
//把搜索值输出
data.msg = '登录成功';
res.send(JSON.stringify(data));
});
})


router.route("/register").get(function(req,res){
res.render('register',{title:'user register'});
})

module.exports = router;

凡本站注明“本站”或“投稿”的所有文章,版权均属于本站或投稿人,未经本站授权不得转载、摘编或利用其它方式使用上述作品。

编辑:yxl 关键词:
0

网友评论