节点 js rest API 返回错误,表示“无法 POST /api/v1/user”

Rif*_*y A 0 javascript api rest node.js

我正在尝试使用节点 js 为 rest api 创建 post 方法,但它说无法在 postman 和 insomnia 中发布 /api/v1/user,但是在控制台中没有错误,有人可以帮助我吗?

这是我的代码

服务器.js

// require dependencies
var app = require('express')();
var http = require('http').Server(app);
var mysql = require('mysql');
var bodyParser = require("body-parser");
// end require


app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "GET,POST,DELETE,PUT");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

// load controller
var welcome     = require('./controllers/welcome.js');
var users       = require('./controllers/user_controller.js');
// end of load controller

// This is the API Route

// Base Route
app.get('/api/v1', welcome.getApi);

// User Route
app.post('api/v1/user', users.post);


http.listen(8080,function(){
    console.log("Connected & Listen to port 8080");
});
Run Code Online (Sandbox Code Playgroud)

用户模型.js

var mysql = require('mysql');
const uuid = require('uuid/v4');
var connection = require('../config/conn.js');
var knex = require('knex')(connection);
// const salt = "QxLUF1bgIAdeQX";
// const crypto = require('crypto');
var moment = require('moment');
var table = "t_user";

module.exports = {
    post: function (req, callback) {
        var Id = uuid();
        var usrnm = req.body.usrnm;
        var pass = req.body.pass;
        var mail = req.body.mail;
        var name = req.body.name;
        var gndr = req.body.gndr;
        var addrss = req.body.addrss;
        var rl = req.body.rl;
        var crt = moment().format('MMMM Do YYYY, h:mm:ss a');
        var mdf = moment().format('MMMM Do YYYY, h:mm:ss a');
        var dlt = "";
        knex(table)
            .insert({
                id: Id,
                username: usrnm,
                password: pass,
                email: mail,
                realname: name,
                gender: gndr,
                address: addrss,
                role: rl,
                created_at: crt,
                modified_at: mdf,
                deleted_at: dlt
            })
            .then(function (rows){
                callback(null, rows);
            })
            .catch(function (err){
                callback(err);
            });
        console.log("test");
    }
}
Run Code Online (Sandbox Code Playgroud)

用户控制器.js

var model = require('../models/user_model.js');
var data = {
    "count" : 0,
    "status" : "",
    "detail" : ""
};

module.exports = {
    post: function (req,res) {

        model.post(req, function (error,result){

            if(error){
                data["status"] = "error";
                data["detail"] = error;
            }
            else{
                data["status"] = "success";
                data["detail"] = result;
            }
            res.json(data);

        })

    }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*hev 6

你可能在这里错过了斜线:

app.post('api/v1/user', users.post); // must be '/api/v1/user'
Run Code Online (Sandbox Code Playgroud)