Я создаю API, используя Node.js, который подключается к базе данных SQL Server. Мои запросы GET работают хорошо, но мой запрос POST выдает ошибки. Я разделил свой проект узла на два файла: файл маршрутов и файл контроллеров.
Код в моем файле маршрутов выглядит следующим образом:
module.exports = (app) => {
const UsrContrllr = require('../Controllers/users.controllers');
//1. GET ALL USERS
app.get('/api/users', UsrContrllr.getAllUsers);
//2. POST NEW USER
app.post('/api/user/new', UsrContrllr.addNewUser);
};
И код в моем файле контроллеров приведено ниже:
const mssql = require('mssql');
exports.getAllUsers = (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.addNewUser = (req, res) =>
{
// Validate request
console.log(`INSERTING RECORD ${req.body}`);
// create Request object
var request = new mssql.Request();
// query to the database and get the records
const queryStr = `INSERT INTO USERS (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}');`;
console.log(queryStr);
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);
}
};
});
};
Когда я запускаю запрос POST из моего angular приложения, я получаю HttpErrorResponse, ошибка 404 не найдена.
ошибка: «Ошибка: Невозможно выполнить POST / api / users / new "сообщение:" Ответ об ошибке HTTP для http://url: порт / api / users / new: 404 Not Found "имя:" HttpErrorResponse "ok: false status: 404 statusText:" Not Found "url : «http://url: порт / api / users / new»
Код angular в служебном файле выглядит следующим образом:
private url = 'http://url:port/api/users';
signup(fName: string, lName: string, usrCode: string, pwd: string, cntctNbr: string) {
const headers = new HttpHeaders().set('Content-Type', 'application/json');
const newUsr = {
usercode: usrCode,
password: pwd,
firstname: fName,
lastname: lName,
contactno: cntctNbr
}
this.http.post(this.url + '/new', JSON.stringify(newUsr), { headers: headers }).subscribe(data => {
console.log(data);
});
}
Я не понимаю почему я не могу добавить новых пользователей. Мне сказали, что мой код выглядит нормально, но я не вижу результатов. Где я ошибаюсь?