node + express后端 + mysql数据库,postman put模式 404 Not Found错误 解决

1.后端文件组织架构

|--src
  |--server
    |--api
      |--userApi.js
  |--db.js
  |--server.js
  |--sqlMap.js

2.userApi.js 文件

注意:router.put必须和前端postman发送的请求put一致。使用传送参数:req.body

//api文件夹为与数据库的各个表连接接口,每一个子文件为一个数据库中一个表

//userApi.js
var models = require('../db')
var express = require('express')
var router = express.Router()
var mysql = require('mysql')
var $sql = require('../sqlMap')

// 连接数据库
var conn = mysql.createConnection(models.mysql)

conn.connect()
var jsonWrite = function (res, ret) {
  if (typeof ret === 'undefined') {
    res.json({
      code: '1',
      msg: '操作失败'
    })
  } else {
    res.json(ret)
  }
}

// 按用户名查询用户信息
router.get('/login', (req, res) => {
  var sql = $sql.admin_user.queryByName
  // var params = req.query
  var params = req.body
  console.log('params.username',params.username)
  conn.query(sql, [params.username], function (err, result) {
    if (err) {
      console.log(err)
    }
    if (result) {
      console.log(result)
      res.send(result)
    }
  })
})

// 增加用户接口
router.post('/addUser', (req, res) => {
  var sql = $sql.admin_user.add;
  var params = req.body;
  console.log(params.username);
  conn.query(sql, [params.username, params.password], function(err, result) {
    if (err) {
      console.log(err);
    }
    if (result) {
      jsonWrite(res, result);
    }
  })
})

// 增加用户地址。router.put必须和前端的请求 put 一致 
router.put('/putUserAddr', (req, res) => {
  var sql = $sql.admin_user.putAddress;
  var params = req.body;
  console.log(params);
  conn.query(sql, [params.address,params.id], function(err, result) {
    if (err) {
      console.log(err);
    }
    if (result) {
      jsonWrite(res, result);
    }
  })
})

// 获取用户地址:使用req.query
router.get('/getUserAddr', (req, res) => {
  var sql = $sql.admin_user.getAddress;
  var params = req.query;
  console.log(params);
  conn.query(sql, [params.id], function(err, result) {
    if (err) {
      console.log(err);
    }
    if (result) {
      jsonWrite(res, result);
    }
  })
})


module.exports = router

3.db.js文件

//db.js为数据库连接配置

// 数据库连接配置db.js
module.exports = {
  mysql: {
    host: '127.0.0.1', //mysql连接ip地址
    user: 'root',
    password: 'root',         //mySql用户名密码
    database: 'mbg',          //mySql数据库名
    port: '3306'              //mysql连接端口
  }
}

4.server.js 文件

//index.js用来定义与监听后端服务器

// node 后端服务器
const userApi = require('./api/userApi');
const goodsApi = require('./api/goodsApi')
// const bodyParser = require('body-parser');
const express = require('express');
const app = express();

/* app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true})); */
//在Express 4.16.0之后的版本,这两个中间件已经内置到 Express 中,无需额外安装 body-parser。
app.use(express.json())
app.use(express.urlencoded({extend:true}))


// 后端api路由
app.use('/user', userApi);
app.use('/goods', goodsApi);

// 监听端口
app.listen(3000,()=>{
  console.log('success listen at port:3000......');
});

5.sqlMap.js文件

//sqlMap.js
var sqlMap = {
  // 用户
  admin_user: {
    add: 'insert into t_user(username,password) values(?, ?)',
    delete: 'delete from t_user where id = ?',
    all: 'select * from t_user',
    queryByName:'select * from t_user where username = ?',
    queryById:'select * from t_user where id = ?',
    getAddress: 'select * from t_user where id = ?',
    putAddress: 'update t_user set address1 = ?, address2 = ?, address3 = ? where id = ?',
  },  
  goods: {
    // addGoodsCar: 'insert  into `t_goodscar`(`goodsCompany`,`goodsDes`,`goodsName`,`goodsPrice`,`goodsNum`,`goodsPicture`) VALUES  values (?, ?, ?, ?, ?, ?)',
    addGoodsCar: 'insert into t_goodsCar(goodsCompany,goodsDes,goodsName,goodsPrice,goodsNum,goodsPicture,uid) values (?, ?, ?, ?, ?, ?, ?)',
    allGoodsCar: 'select * from t_goodscar',
    search: 'select * from t_goods where goodsName = ?',      
    queryById: 'select * from t_goods where id = ?',
    all: 'select * from t_goods',
    updateById: 'update t_goods set goodsNum = ? where id = ?',
  }
}
module.exports = sqlMap;

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值