首页 > 编程语言 >nodeJS+express搭建后台服务,node写后台接口

nodeJS+express搭建后台服务,node写后台接口

时间:2023-02-02 16:00:49浏览次数:36  
标签:node req const nodeJS res require express js 后台

确保电脑已安装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

相关文章

  • node中的模块化
              ......
  • node.js中的fs.writeFile(file,data,[option],callback)
        无论写入成功还是失败,都会调用function函数,如果写入成功err为null失败err为错误对象......
  • 关于node.js的fs模块(操作文件模块)
           ......
  • Node.JS模块化简介
    视频02.module.js/* 模块化 -在Node中,一个js文件就是一个模块 -在Node中,每一个js文件中的js代码都是独立运行在一个函数中 而不是全局作用域,所以一个模块的中......
  • Node.JS前置知识(命令行窗口/Node.JS简介/如何使用node执行js文件)
    视频命令行窗口1.命令行窗口(小黑屏)、CMD窗口、终端、shell-开始菜单-->运行-->CMD-->回车-常用的指令:dir列出当前目录下的所有文件cd目录名进入到指定......
  • 百度站长后台python推送工具
    需要在文件目录下面建一个urls.txt的文件,将所有要推送的url放到文本里。然后运行下面的脚本。importrequestsdefbaidu_push(url,token):headers={'......
  • Node.js+Koa2+TypeScript技术概览
    最近几年一直使用Node.js作为后端服务平台,通过Koa2框架中间件快速搭建Web服务,但是使用JavaScript开发大型后端服务时会使程序变得难以维护,继而使用TypeScript语言开发,使编......
  • 关于node.js
    浏览器是JavaScript的前端运行环境。Node.js是JavaScript的后端运行环境。Node.js中无法调用DOM和BOM等浏览器内置API。基于Express框架(http://www.expres......
  • 如何生成设备ID?(node-machine-id)
    业务场景:前端需要在请求登录接口的时候传一个设备ID,用于后台记录同一台设备异常登录的次数,然后返回一个字段让前端判断是否展示异常信息的弹框。分析:首先说下,为什么这里是......
  • nodejs 版本管理器 nvm
    安装过程C:\Users\GSGK\AppData\Roaming\nvm下载地址:https://github.com/coreybutler/nvm-windows/releasesnvm-setup.zip解压后,双击exe进行安装nvm-setup.exe验证......