1、代码目录结构
2、02router.js
var model = require('./model/model')
var http = require('http')
var url = require('url')
http.createServer(function(req,res){
res.writeHead(200,{"Content-Type":"text/html;charset='utf-8'"});
var pathname=url.parse(req.url).pathname.replace('/','')
//因为函数的内部可能存在错误,所以要进行try,catch捕获
if(pathname != 'favicon.ico'){
try{
model[pathname](req,res);
}
catch(err){//catch过异常之后,就能够进行后续的操作了
/*
* 没有这个方法,即没有定义这个路由
* */
console.log(err)
model['home'](req,res)
}
}
}).listen(8001)
3、model.js
var ejs = require('ejs')
var fs = require('fs')
var app = {
login: function (req, res) {
console.log('login');
ejs.renderFile('views/form.ejs', {}, function (err, data) {
res.end(data)
})
//res.end('login')
},
register: function (req, res) {
console.log('register');
res.end('register')
},
home: function (req, res) {
console.log('home')
res.end('home')
},
doLogin: function (req, res) {
var postStr = '';
//请求时准备数据
req.on('data', function (chunk) {
postStr += chunk;
})
//请求完成时
req.on('end', function (err, chunk) {
console.log(postStr);
fs.appendFile('login.txt', postStr + '\n', function (err) {
if (err) {
console.log(err);
return;
}
console.log('data is written successly')
})
res.end("<script>alert('login successly');history.back();</script>")
})
}
}
module.exports = app