如何使用Node.js、Express和SQL DB编写POST REST API?
我正在处理一个RESTAPI Post请求,以将新数据插入SQL数据库,但它不起作用。这是我的密码:如何使用Node.js、Express和SQL DB编写POST REST API?,sql,node.js,sql-server,rest,express,Sql,Node.js,Sql Server,Rest,Express,我正在处理一个RESTAPI Post请求,以将新数据插入SQL数据库,但它不起作用。这是我的密码: var express = require('express'); // Web Framework var app = express(); var sql = require('mssql'); // MS Sql Server client const { request } = require('http'); // Connection string parameters. var
var express = require('express'); // Web Framework
var app = express();
var sql = require('mssql'); // MS Sql Server client
const { request } = require('http');
// Connection string parameters.
var sqlConfig = {
user: 'username',
password: 'password',
server: 'serveraddress',
database: 'databasename'
}
// Start server and listen on http://localhost:8081/
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("app listening at http://%s:%s", host, port)
});
//POST API
app.post("/tag/insert/:tagId/", function(req , res){
sql.connect(sqlConfig, function() {
var request = new sql.Request();
var stringRequest = "INSERT INTO Tag (tagId, tagStatus) VALUES ("+ req.params.tagId+ ", 1)";
request.query(stringRequest, function(err, recordset) {
if(err) console.log(err);
res.end(JSON.stringify(recordset)); // Result in JSON format
});
});
})
如果我试图通过类似“”的浏览器插入新标记,它总是说“无法获取/tag/insert/23232”。这是什么意思?如何解决它?这意味着您在创建
POST
端点时正在使用GET
请求。我不确定这是否有效,但您可以尝试将app.post
更改为app.get
,这样您就有了一个get
端点
我建议您仔细阅读HTTP请求方法。您在末尾有“/tag/insert/:tagId/”斜杠,这可能是您的问题。