一:Express 应用程序生成器
express --view=pug myapp
下载依赖
cd myapp
npm install
启动项目(更新一次要重启一次)
npm start
如果每次更新自动重启进行配置两种方法
1:
npm i nodemon --save
在package.json里设置
运行项目
npm run dev
2:
运行项目
npm start
项目监听的端口号为3000,如果被占用之后改端口号
在bin下的www里修改
配置跨域(app.js里)
//设置跨域访问
app.all("*", function (req, res, next) {
//设置允许跨域的域名,*代表允许任意域名跨域
res.header("Access-Control-Allow-Origin", req.headers.origin || '*');
// //允许的header类型
res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");
// //跨域允许的请求方式
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
// 可以带cookies
res.header("Access-Control-Allow-Credentials", true);
if (req.method == 'OPTIONS') {
res.sendStatus(200);
} else {
next();
}
})
创建文件夹链接mongodb
npm i mongoose --save
model---->
连接数据库 (db.js) 如果忘记了地址可以在cmd输入mongo命令查看
const mongoose = require('mongoose')
mongoose.connect("mongodb://127.0.0.1:27017/react_monthed").then(() => {
console.log('数据库连接成功');
})
创建数据表 (modelTables.js)
const mongoose = require('mongoose')
const userList = new mongoose.Schema({
name: String,
jiexi: String,
Ower: String,
img: String,
Creatime: { type: Date, default: Date.now }
})
//后边有两个参数就是默认第一个参数加s是数据表,三个参数的化就是最后一个参数是数据表
var usersList = mongoose.model('BiaoList', userList, 'BiaoList')
//暴露出去
module.exports = usersList
在配置路由写方法 项目自带routes文件夹
默认index为根 , user为/users
var express = require('express');
var router = express.Router();
//引入数据表
const userslist = require('../model/userList')
/* GET users listing. */
// router.get('/', function (req, res, next) {
// res.send('respond with a resource');
// });
//get请求
router.get('/RenList', function (req, res) {
const key = req.query.key
try {
//模糊查询
userslist.find({ name: { $regex: key } }).then((result) => {
res.json({ 'code': 200, "message": '成功', "list": result })
})
}
catch {
res.json({ 'code': 400, "message": '失败' })
}
})
//post请求
router.post('/RenList', function (req, res) {
try {
new userslist(req.body).save().then((err) => {
console.log(err, 335678);
res.json({ 'code': 200, "message": '添加成功' })
})
}
catch {
res.json({ 'code': 400, "message": '添加失败' })
}
})
//put请求
router.put('/RenList', function (req, res) {
const msg = req.body
userslist.update({ _id: req.body._id }, { $set: msg }).then((result) => {
res.json({ 'code': 200, "message": '修改成功' })
})
})
//delete请求
router.delete('/RenList', function (req, res) {
const id = req.query.id
// console.log(id, 'kbjin');
userslist.findOneAndDelete({ _id: id }).then(result =>
res.json({ 'code': 200, "message": '删除成功' })
)
})
module.exports = router;
在app.js 里配置解析post代码 //必须引入连接数据库的文件
const bodyParams = require('body-parser')//解析post数据
// //引入数据库链接
require('./model/modelConncet')
//跨域
//写到路由上面顺序 解析路由数据***
app.use(bodyParams.urlencoded({ entends: false }))
//解决请求数据过大出现403错误
app.use(bodyParams.json({ "limit": "10000kb" }))
//路由配置 再带
app.use('/', indexRouter);
app.use('/users', usersRouter);