确保电脑已安装node.新建个文件夹,准备存放服务文件,打开文件夹,按住shift右键快捷打开powershell窗口,执行命令
npm i express
然后依赖文件就安装好了
新建serve文件夹,里面建几个文件
db.js --------数据库配置 index.js -----express服务实例,也是引导文件,对服务进行总体配置 api.js ------编写接口
db.js
// 数据库配置 module.exports = { mysqlInfo:{ // 本地用这个 host:'127.0.0.1', user:'root', // 线上切换成这个 // host:'', // user:'', password:'', port:'3306', database: 'dashijian', // 要连接的数据库名称 connectTimeout: 5000, //连接超时 multipleStatements: false //是否允许一个query中包含多条sql语句 } }
index.js
const userApi = require('./api.js') // 接口文件 const bodyParser = require('body-parser')// 配置解析表单的中间件 const express = require("express") const cors = require('cors')// 一定在路由前配置cors这个中间件,用来解决跨域问题 //const router = require('./sqlMap.js')// 导入路由 const app = express()// 创建express的服务器实例 app.all("*",function(req,res,next){ //设置允许跨域的域名,*代表允许任意域名跨域 res.header("Access-Control-Allow-Origin","*"); //允许的header类型 res.header("Access-Control-Allow-Headers","content-type"); //跨域允许的请求方式 res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS"); if (req.method.toLowerCase() == 'options') res.sendStatus(200); //让options尝试请求快速结束 else next(); }) app.use(cors()) .use(bodyParser.urlencoded({extended: false})) .use(bodyParser.json()) .use('/assets',express.static('../assets')) .use('/api',userApi) .listen(8081, function (){ console.log('服务器启动') })
api.js
const modules = require('./db.js') const mysql = require('mysql') const multer = require('multer') const express = require('express') const router = express.Router() // 本地地址 const BASE_URL = 'http://127.0.0.1:8081' // 连接数据库 const conn = mysql.createConnection(modules.mysqlInfo) conn.connect() // 格式化返回数据 let jsonWrite = function (res, ret) { if (typeof ret === 'undefined') { res.json({ code: '1', msg: '操作失败' }) } else { res.json(ret) } } let upload = multer({ storage: multer.diskStorage({ destination: function (req, file, cb) { cb(null, '../assets/newsList'); }, filename: function (req, file, cb) { var changedName = (new Date().getTime())+'_'+file.originalname; cb(null, changedName); } }) }); // 文件上传并将路径保存到数据库 router.post('/addEvent', upload.any(), (req, res,next) => { const { body, files } = req console.log(files)
let file = req.files
let name = req.body.name || ''
for(let i = 0; i<file.length; i++){
let path = file[i].path.replace(/\\/g,'/')
let sql = `INSERT INTO image (name,picname,path) VALUES ("${name}", "${file[i].originalname}", "${path}")`
conn.query(sql,(err,result)=>{
if(err) throw err
})
}
res.json({
fileList: file
});
})
// 获取所有数据
router.get('/get', (req,res) => {
let sql = 'SELECT * FROM test'
conn.query(sql, (err, result) => {
if(err) throw err
jsonWrite(res, result)
})
})
也可以将全部sql写在一个文件里,然后引用就可以了,因为是测试接口,就简单写了个大概,然后你数据库里建一些东西,试试能不能查出来,如果可以,就说明接口是通的,没有问题
标签:node,req,const,nodeJS,res,require,express,js,后台 From: https://www.cnblogs.com/alannero/p/17086309.html