【发布时间】:2020-10-30 15:10:12
【问题描述】:
我有一个使用 expressjs 连接到 SQL Server 的 NODE.JS api,我想在 Angular 项目中使用它。我使用两个文件,一个路由文件和一个控制器文件。我的路由文件如下:
module.exports = (app) => {
const UsrContrllr = require('../Controllers/users.controllers');
//1. GET ALL USERS
app.get('/api/users', UsrContrllr.func1);
//2. POST NEW USER
app.post('/api/user/new', UsrContrllr.func2);
};
我的控制器文件如下:
const mssql = require('mssql');
exports.func1 = (req, res) =>
{
// Validate request
console.log(`Fetching RESPONSE`);
// create Request object
var request = new mssql.Request();
// query to the database and get the records
const queryStr = `SELECT * FROM USERS`;
request.query(queryStr, function (err, recordset) {
if (err) console.log(err)
else {
if (recordset.recordset.toString() === '') {
res.send('Oops!!! Required data not found...');
}
else {
// send records as a response
res.send(recordset);
}
};
});
};
exports.func2 = (req, res) =>
{
// Validate request
console.log(`INSERTING RECORD ${req}`);
// create Request object
var request = new mssql.Request();
// query to the database and get the records
const queryStr = `INSERT INTO GDUSERS (USERCODE, PASSWORD, LANGUAGE, USERCLASS, FIRSTNAME, LASTNAME, CONTACTNO) VALUES ('${req.body.usercode}', '${req.body.password}', 'EN', '0', '${req.body.firstname}', '${req.body.lastname}', '${req.body.contactno}');`;
request.query(queryStr, function (err, recordset) {
if (err) console.log(err)
else {
if (recordset.recordset.toString() == '') {
res.send('Oops!!! Required data not found...');
}
else {
// Send records as response
res.send(recordset);
}
};
});
};
GET 请求运行良好,但是当我尝试直接从 Angular 应用程序运行 POST 请求时,我收到一条错误提示
无法获取 URL/api/user/new
我的 Angular 项目中的 Angular 代码是:
signup() {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
console.log(this.user); //User details come from a form
this.http.post(“URL", this.user, options)
.subscribe(
(err) => {
if(err) console.log(err);
console.log("Success");
});
}
我不确定我使用的角度代码是否正确,我也不知道我哪里出错了。如何从 Angular 项目中准确发送 http POST 请求?
【问题讨论】:
-
您确定这是与您的错误对应的代码吗?错误是创建新用户时,但代码是用于登录,而不是注册
-
这是一个错字。这是我的代码,我只是在这里直接输入,而不是粘贴副本。
-
您使用的是哪个版本的 Angular?
Headers和RequestOptions已弃用 -
我正在使用 Angular2 代码,在一些书籍和参考资料中找到了它。
-
尝试在旧的 angular 2 stackblitz 上重现问题,因为您所拥有的似乎是正确的