1、node作为后端写接口
①全局安装
npm install express-generator -g
②进入项目目录
express --view=ejs server
此时在项目中将会出现一个server的文件
③启动项目
cd到项目目录中
npm install //安装依赖
④后端热启动
首先安装nodemon
npm install nodemon -g --save-dev
//-g:全局安装nodemon
//--save-dev:安装到本项目的dev开发环境依赖下
nodemon app.js//q
2、node热加载
npm install -g node-dev或npm install node-dev -D
然后在package.json里加上"dev": "node-dev ./bin/www"
3、node设置跨域代理:(在app.js中写)
首先安装cors:(需要express框架)
npm install cors --save
然后在server下的app.js中引入即可
var cors = require('cors')
app.use(cors({
origin:['http://localhost:8080'],//设置可以访问后端接口的地址
methods:['GET','POST'],//设置可以访问的请求方式
allowHeaders:['Content-Type', 'Authorization']//设置头文件
}))
4、node接口模板:(在server下的router下的index.js中写):
router.get('/home123',function(req,res,next){
res.send({
code:200,
msg:"请求成功"
})
})
5、axios封装
首先新建request.js文件
import axios from "axios";
import {Indicator } from 'mint-ui';
export default{
common:{
menthod:"GET",
params:{},
data:{}
},
$axios( options={} ){
options.method = options.method || this.common.menthod
//请求前
Indicator.open('加载中...')
return axios(options).then(res=>{
let data = res
return new Promise((res,rej)=>{
if(!res){
return rej()
}
/结束
setTimeout(()=>{
Indicator.close()
},500)
res(data);
})
})
}
}
6、express链接mongodb数据库
安装模块
npm install mongoose --save
使用MongoDB
连接
在app.js 文件中
// app.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/blog') //连接本地数据库blog
var db = mongoose.connection;
// 连接成功
db.on('open', function(){
console.log('MongoDB Connection Successed');
});
// 连接失败
db.on('error', function(){
console.log('MongoDB Connection Error');
});
新增Models 模块
在根路径下新建 Models 文件夹。 添加 users.js
// Models/users.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// 声明一个数据集 对象
var userSchema = new Schema({
username: {
type: String,
unique: true
},
password: {
type: String
},
age: Number,
address: String,
createAt: {
type: Date,
default : Date.now()
}
});
// 将数据模型暴露出去
module.exports = mongoose.model('users', userSchema);
编写路由
// routes/index.js
var express = require('express');
var router = express.Router();
var User = require('../models/users');
router.get('/login', function (req, res) {
res.render('login');
});
router.get('/register', function (req, res) {
res.render('register');
});
// 这里的业务逻辑将写在 两个post 路由里
router.post('/login', function (req, res) {
});
router.post('/register', function (req, res) {
});
这里我们需要安装一个模块 body-parser 用来解析post请求的参数
npm install body-parser --save
// app.js
var bodyParser = require('body-parser')
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false}));
这样我们就可以通过 request.body 来拿到post 请求过来的 数据了 先写一个注册的
// routes/index.js
router.post('/register', function (req, res) {
// 获取用户提交的信息
var postData = {
username: req.body.username,
password: req.body.password,
age: req.body.age,
address: req.body.address
};
// 查询是否被注册
User.findOne({username: postData.username}, function (err, data) {
if (data) {
res.send('用户名已被注册');
} else {
// 保存到数据库
User.create(postData, function (err, data) {
if (err) throw err;
console.log('注册成功');
res.redirect('/userList'); // 重定向到所用用户列表
})
}
});
});
// 获取所有用户列表
router.get('/userList', function (req, res) {
var userList = User.find({}, function (err, data) {
if (err) throw err;
res.send(data)
});
});
上面通过 mongoose 的 api 对数据库进行操作
Mongoose Api
然后就是验证登录的了
router.post('/login', function (req, res) {
var postData = {
username: req.body.username,
password: req.body.password
};
User.findOne({
username: postData.username,
password: postData.password
}, function (err, data) {
if(err) throw err;
if(data){
res.send('登录成功');
}else{
res.send('账号或密码错误')
}
} )
});
到这里就基本完成了 Express 对Mongodb 的连接,插入,查询。