首页 > 解决方案 > 如何在 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 查询中,你知道如何删除它们或者我该如何解决它们数据库端?

感谢提前帮助。

标签: node.jssql-serversequelize.js

解决方案


您可能需要替换 ':' 并将其解析为数值然后传递,如下所示:

常量 id_alquiler = parseInt(req.params.id_alquiler.replace(':', ''));


推荐阅读