admin管理员组文章数量:1355789
i'm trying to create post method for rest api using node js, but it says cannot post /api/v1/user in postman and insomnia, but in the console there's no error, can anyone help me?
Here are my code
server.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 wele = require('./controllers/wele.js');
var users = require('./controllers/user_controller.js');
// end of load controller
// This is the API Route
// Base Route
app.get('/api/v1', wele.getApi);
// User Route
app.post('api/v1/user', users.post);
http.listen(8080,function(){
console.log("Connected & Listen to port 8080");
});
user_model.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");
}
}
user_controller.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);
})
}
}
i'm trying to create post method for rest api using node js, but it says cannot post /api/v1/user in postman and insomnia, but in the console there's no error, can anyone help me?
Here are my code
server.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 wele = require('./controllers/wele.js');
var users = require('./controllers/user_controller.js');
// end of load controller
// This is the API Route
// Base Route
app.get('/api/v1', wele.getApi);
// User Route
app.post('api/v1/user', users.post);
http.listen(8080,function(){
console.log("Connected & Listen to port 8080");
});
user_model.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");
}
}
user_controller.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);
})
}
}
Share
Improve this question
asked Jul 19, 2017 at 14:16
Rifqy Zacky ARifqy Zacky A
551 gold badge2 silver badges9 bronze badges
2 Answers
Reset to default 7You probably missed slash here:
app.post('api/v1/user', users.post); // must be '/api/v1/user'
Might want to look at the Security Best Practices for Express https://expressjs./en/advanced/best-practice-security.html
本文标签: javascriptNode js rest API returning an error says 39Cannot POST apiv1user39Stack Overflow
版权声明:本文标题:javascript - Node js rest API returning an error says 'Cannot POST apiv1user' - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1743981459a2571097.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论