提问人:Marilina 提问时间:1/19/2023 最后编辑:Marilina 更新时间:1/19/2023 访问量:179
RequestError:无法将值 NULL 插入到列“NetValue”中,表列不允许 null。INSERT 失败
RequestError: Cannot insert the value NULL into column 'NetValue', table column does not allow nulls. INSERT fails
问:
我正在尝试使用 Node JS Express 在本地安装的 Microsoft Sql Server 中插入一些值。 参数的值是从用户在网页(通过ejs文件创建)中输入的。 我读过很多类似问题的解决方案,但没有一个适合我。
给定的值(例如公司和数据)被正确插入,但在其他值中似乎总是将空值解析到数据库,我不明白为什么。 与数据库的连接工作正常(相应的选择查询显示所有行) 将不胜感激任何帮助。
代码如下图所示:
//Controller to create an insert in the database
exports.postbudget = (req, res, next) => {
const company = 10008;
const data = '02';
const date = new Date(2022,01,19);
const doc = 'Budget';
const reason = 'Budget';
const quantity = 0;
const supplieruid = req.body.SupplierUID;
const resource = req.body.ResourceID;
const taskid = req.body.TaskID;
const value = parseInt(req.body.NetValue);
mssql.connect(dbconfig, function(err) {
if (err) console.log('Error: ', err);
var request = new mssql.Request();
request.input('company', mssql.Decimal(18,0), company)
.input('data', mssql.NVarChar(50), data)
.input('supplieruid', mssql.NVarChar(50), supplieruid)
.input('date', mssql.DateTime, date)
.input('doc', mssql.NVarChar(50), doc)
.input('reason', mssql.NVarChar(50), reason)
.input('resource', mssql.NVarChar(20), resource)
.input('taskid', mssql.NVarChar(20), taskid)
.input('quantity', mssql.Decimal(18,3), quantity)
.input('value', mssql.Decimal(18,2), value)
// Query to the database
.query("INSERT INTO [CostTransactions] (CompanyID, DataTypeCode, SupplierUID, CT_IssueDate, CT_DocNumber, CT_Reason, ResourceID, TaskID, Quantity, NetValue) \
VALUES (@company, @data, @supplieruid, @date, @doc, @reason, @resource, @taskid, @quantity, @value)")
.then(function(result) {
console.log(result);
//return result.recordset;
res.redirect('/budget');
//mssql.close();
})
.catch(err => {
if (err) {
console.log(err);
res.render('404.ejs');
}
})
})
}```
答: 暂无答案
评论
req.body.NetValue
parseInt('0.48')
0
parseInt('$0.48')
NaN
req.body
express
body-parser
express.json()
var bodyParser = require("body-parser"); const express = require("express"); const app = express(); app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: false })) app.use(express.json()); app.use(express.urlencoded({ extended: true }));