res.send('<h1>Welcom to my Blog</h2>');
所以,将界面和逻辑分开
swig.setDefaults({cache: false});
这样,每次就不需要重新去运行app.js,而是保存模板文件即可。
// app.js
/**
* Created by xiaofeng on 2017/5/1 0001.
*/
/*
* 应用程序的启动(入口)文件
* */
// 加载express模板
var express=require('express');
//创建app应用 => NodeJS Http.createServer();
var app=express();
// 加载模板引擎
var swig=require('swig');
// 设置静态文件托管
// 当用户访问的url以/public开始,那么直接返回对应_dirname+'/public'下的文件
app.use('/public',express.static(__dirname+'/public'));
/*
* 处理请求输出
* */
/*
* 首页
* req request对象
* res response对象
* next函数
* */
// app.get('/',function (req,res,next) {
// // res.send('<h1>欢迎来到我的Blog,这是通过NodeJS搭建的</h1>');
// });
/*
* 配置应用模板
* 定义当前应用所使用的模板引擎
* 第一个参数:模板名称,也是文件后缀名,第二个参数用于解析处理模板的内容的方法
* */
app.engine('html',swig.renderFile);
// 设置模板文件存放的目录,第一个参数必须是views,第二个参数是目录
app.set('views','./views');
// 注册所使用的模板引擎,第一个参数必须的view engine,第二个参数必须和app.engine这个方法中定义的模板名称一致
app.set('view engine','html');
swig.setDefaults({cache:false});
app.get('/',function (req,res,next) {
res.render('index');
});
// 比较麻烦
// app.get('/main.css',function (req,res,next) {
// res.setHeader('content-type','text/css');
// res.send("h1 {text-align:center;}");
// });
// 监听端口 http请求
app.listen(8081);
var mongoose=require('mongoose');
var userSchema=require('../schemas/users');
//创建模型类
module.exports = mongoose.model('User',userSchema );
// index.js
$(function () {
var $loginBox=$('#loginBox');
var $registerBox=$('#registerBox');
//切换到注册面板
$loginBox.find('a').on('click',function () {
$registerBox.show();
$loginBox.hide();
});
$registerBox.find('a').on('click',function () {
$loginBox.show();
$registerBox.hide();
});
//注册,通过ajax实现
$registerBox.find('button').on('click',function () {
//通过ajax提交数据
$.ajax({
type: 'post',
url: '/api/user/register',
data: {
username: $registerBox.find('[name="username"]').val(),
password: $registerBox.find('[name="password"]').val(),
repassword: $registerBox.find('[name="repassword"]').val()
},
dataType: 'json',
success: function (result) {
console.log(result);
}
});
});
})
// app.js
var express=require('express');
var router=express.Router();
/*
* 用户注册
* 这里router(路由)使用的方法要和index中ajax type属性一致,否则会报错
* */
router.post('/user/register',function (req,res,next) {
res.send('register');
console.log('register');
});
module.exports=router;
接下来需要获取前端提交过来的post数据,如何获取?
// app.js
/*
* 应用程序的启动(入口)文件
* */
//加载express模板
var express=require('express');
//加载模板引擎
var swig=require('swig');
//加载数据库
var mongoose=require('mongoose');
//加载body-parser解析post数据
var bodyParser=require('body-parser');
//创建app应用 => NodeJS Http.createServer();
var app=express();
//设置静态文件托管
//当用户访问的url以/public开始,那么直接返回对应_dirname+'/public'下的文件
app.use('/public',express.static(__dirname+'/public'));
/*
* 配置应用模板
* 定义当前应用所使用的模板引擎
* 第一个参数:模板名称,也是文件后缀名,第二个参数用于解析处理模板的内容的方法
* */
app.engine('html',swig.renderFile);
//设置模板文件存放的目录,第一个参数必须是views,第二个参数是目录
app.set('views','./views');
//注册所使用的模板引擎,第一个参数必须的view engine,第二个参数必须和app.engine这个方法中定义的模板名称一致
app.set('view engine','html');
swig.setDefaults({cache:false});
//body-parser设置
app.use(bodyParser.urlencoded({extended:true}));
app.use('/admin',require('./routers/admin'));
app.use('/api',require('./routers/api'));
app.use('/',require('./routers/main'));
//监听端口 http请求
mongoose.connect('mongodb://localhost:27017/blog',function (err) {
if (err){
console.log('数据库连接失败');
}else {
console.log('数据库连接成功');
app.listen(8081);
}
});
api.js
var express=require('express');
var router=express.Router();
/*
* 用户注册
* 这里router(路由)使用的方法要和index中ajax type属性一致,否则会报错
* */
router.post('/user/register',function (req,res,next) {
//res.send('register');
console.log(req.body);
});
module.exports=router;
点击“注册”后,
var express = require('express');
var router = express.Router();
//统一返回格式
var responseData;
router.use(function (req,res,next) {
responseData = {
code: 0,
message: ''
}
next();
});
/*
* 用户注册
* 注册逻辑:对字符进行验证,并且返回给前端
* 1.用户名不能为空
* 2.密码不能为空
* 3.两次输入的密码必须一致
*
* 1.用户已经被注册
* 数据库中进行查询
*
* 这里router(路由)使用的方法要和index中ajax type属性一致,否则会报错
*
* */
router.post('/user/register', function (req, res, next) {
var username = req.body.username;
var password = req.body.password;
var repassword = req.body.repassword;
//用户名是否为空
if (username == '') {
responseData.code = 1;
responseData.message = "用户名不能为空";
res.json(responseData);
return;
}
//密码不能为空
if (password == '') {
responseData.code = 2;
responseData.message = "密码不能为空";
res.json(responseData);
return;
}
if (password != repassword) {
responseData.code = 3;
responseData.message = "两次输入密码不一致";
res.json(responseData);
return;
}
responseData.message="注册成功";
res.json(responseData);
});
module.exports = router;