node.js - 如何在 SQL-Server 中为我的查询的 FindOne 删除“:”?
问题描述
好的,我只想从我的数据库中获取一个对象,所以我正在使用 sequelize,但是在查询时它给我带来了“:80810”,所以它在数据库中向我发送了一个错误:“转换 nvarchar 值时转换失败': 80810' 到数据类型 int.",因为我要查询的字段是 INT 并且作为请求,我发送冒号":",它已经更改为 nvarchar,但我不知道如何删除节点 para 中的 req.params.id_alquiler 中的冒号 (:),在 SQL-SERVER 中执行时不会将其逐字记录到脚本中。
router.get('/rt:id_alquiler', exports.findOne = (req, res) => {
const id_alquiler = req.params.id_alquiler;
Rent.findByPk(id_alquiler)
.then(data => {
res.json(data);
})
.catch(err => {
res.status(500).send({
message: 'Error', err
});
});
})
SQL-SERVER 发生了什么
SELECT [id_alquiler]
,[nombre_periodo]
,[nombre_tipo_exhibidor]
,[nombre_estado_alquiler]
,[marca]
,[nombre_sucursal]
,[fecha_ingreso_alquiler]
FROM [View_RENTS_PDTs] AS [View_RENTS_PDT]
WHERE [View_RENTS_PDT].[id_alquiler] = N':80810';
但是如果我删除冒号:in (N'80810 ';),那么如果你把对象带给我。那么你如何在数据库中运行它,它向我发送错误 500,但它仅用于冒号“:”,包含在 sequelize 查询中,你知道如何删除它们或者我该如何解决它们数据库端?
感谢提前帮助。
解决方案
您可能需要替换 ':' 并将其解析为数值然后传递,如下所示:
常量 id_alquiler = parseInt(req.params.id_alquiler.replace(':', ''));
推荐阅读
- swift - Sqlite.swift:连接后如何使用列别名(AS 语句)进行解码?
- http - 如何使用忽略代理缓存的http请求网页
- linux - 如何解决奇点无法运行
- html - iframe 通过 CSS 3D 变换忽略 Z 顺序
- laravel - Laravel 8 通过 cookie 检索数据库会话
- ibm-blockchain - 如何从 Uniswp API 获取交易量和流动性?
- .net - `dotnet publish`是否可以跳过代码分析
- flutter - 为什么我的 Flutter CustomPainter 类在使用 scanAngle 小于 2*pi 的 canvas..drawArc() 函数时不在屏幕上绘制任何内容?
- c# - 无法将特殊字符转换为 UTF-8
- python - 在 Python 中通过参数名称获取 argparse 帮助消息