####安装node
安装应用生成器工具 express -可以快速创建一个应用的骨架。$ npm install express-generator -g
检测:$ express --version
创建一个项目:$ express -e myapp
进入项目$ cd myapp
安装依赖$ npm install
启动项目$ npm start
访问 http://localhost:3000/
ctrl+c 停止项目
####安装热更新$ npm install -g supervisor
启动项目$ supervisor bin/www
####begin
在routes目录下新建 login.js-作为登录请求的接口文件
在app.js中配置这个文件(添加如下两行)第九行引入这个login.js文件;第25行设置当请求地址为 “/login” 的时候路由到这个文件
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var loginRouter = require('./routes/login'); // 第九行
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/login', loginRouter); // 第二十五行
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// 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 : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
进入到login.js 开始编写代码
var router = express.Router();
/* POST login page. */
router.post('/', function(req, res, next) {
//获取请求传递过来的数据
var currentData = req.body;
console.log(currentData);
//模拟数据库查询判断,设置返回数据str
if(currentData.username == "guan" && currentData.password == "0818"){
var str = {"result":{"username": currentData.username ,"password": currentData.password },"code":1};
} else{
var str = {"result":{},"code":0};
}
res.writeHead(200,{"Content-Type":'text/plain','charset':'utf-8','Access-Control-Allow-Origin':'*','Access-Control-Allow-Methods':'PUT,POST,GET,DELETE,OPTIONS'});//可以解决跨域的请求
str = JSON.stringify(str);
//打印要返回的数据str
console.log("resData: " + str);
res.end(str);
});
module.exports = router;
然后我们编写一个前端html页面发起请求(这里使用写过的58login页面作为例子)
$('.loginbtn').on('click', function(){
var username = $("#account").val();
var password = $("#password").val();
$.ajax({
type:"post",
url:"http://localhost:3000/login",
data:{
username:username,
password:password
},
timeout:5000,
success:function(data){
data = JSON.parse(data);
if(data.code === 1){
alert("登陆成功")
}else{
alert("用户名密码错误")
}
},
error:function(){
alert("请求错误")
}
});
})
至此我们一个login的接口就写好了
#####注:1、本例是post请求,如果使用get请求,后台获取参数的方式应该使用 req.query (即直接把 req.body 替换成 req.query即可 其他一样)
#####2、本例是demo,在实际项目中,不要使用
#####‘Access-Control-Allow-Origin’:’*’
#####来解决跨域问题,同名同域下去掉这一条
觉得有帮助的小伙伴右上角点个赞~ 扫描上方二维码关注我的订阅号~