代码拉取完成,页面将自动刷新
NEMT是基于 NodeJS 的后端架构模板, 是 Node,Express,Mongodb,Template的首字母缩写。NEMT的已经配置常用的功能, 允许你只需要关注于Schema, 当然你也可以追加新功能.
反反复复的引入 业务逻辑 挂载到 router 是必须要避免的!!autoCURD.js 封装了通用数据模型的 增删改查操作
const express = require(`express`)
const router = express.Router()
const user = require('../model/User')
const Advertisement = require('../model/Advertisement')
//封装
const ADDROUTER = require('../utils/autoCURD')
//三个参数 挂载路由 , 表名 , 表Model
ADDROUTER(router, 'user', user)
ADDROUTER(router, 'Advertisement', Advertisement)
module.exports = router
使用 multer 实现基本的图片上传通用接口, 可拓展文件成上传,如 doc, excel等
const router = require(`express`).Router()
const multer = require('multer')
const adveArtisement = require('../model/Advertisement')
const fs = require('fs')
const storage = multer.diskStorage({
destination: './public/advertisements',
filename: function (req, file, cb) {
console.log(file)
let extname = file.mimetype.split('/')[1]
let imgname =
Date.now() +
parseInt(Math.random() * 999) +
parseInt(Math.random() * 2222)
let keepname = imgname + '广告图片' + '.' + extname
cb(null, keepname)
},
})
const upload = multer({
storage,
})
router.post('/api/v1/uploadimg', upload.single('file'), async (req, res) => {
console.log(req.body.datas)
console.log('bodyssssss')
const datas = JSON.parse(req.body.datas)
datas.Adimg = req.file.filename
adveArtisement.create(datas, function (err, doc) {
console.log('doc', doc)
if (err) return next(err)
res.jsonp({
code: 200,
data: doc,
})
})
})
module.exports = router
const mongoose = require('mongoose')
const bcypt = require('../utils/encrypt')
const userSchema = new mongoose.Schema({
user: { type: String, required: true, unique: true },
pwd: { type: String, required: true, set: value => bcypt(value) }, // 密码加密
email: String,
phone: String,
isaAdmin: { type: Boolean, default: true },
createtime: { type: Date, default: new Date() }, //创建时间
})
const re = await User.findOne({ user: user.user })
if (!re) return res.status(400).send({ code: 400, msg: '用户不存在' })
// 异步密码比较
bcrypt.compare(user.pwd, re.pwd).then(valid => {
if (!valid) return res.status(400).send({ code: 400, msg: '密码错误' })
token
响应请求 const token = jwt.sign({ user }, secret, { expiresIn: '2h' })
res.json({
code: 200,
token,
msg: '登录成功',
})
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。