【问题标题】:Function select from SQL server从 SQL 服务器中选择函数
【发布时间】:2021-07-29 07:57:48
【问题描述】:

我正在编写这样的代码:

dboperations.js 中:

const config = require('./config');
const sql = require('mssql');

async function get_file(id){
try{
    
    let pool = await sql.connect(config);
    let result = await pool.request()
    
    .input('input_id',sql.Int, id)
    .query(`SELECT * FROM items WHERE id = ${input_id}`);
  
    return result;
}
catch (error){
    console.log(error);
}
}

module.exports = {
   get_file
}

display.js 中如下:

const dboperation = require('../database/dboperations');

function showitem(id){                    
const display = function(req, res) {
   dboperation.get_file(id).then (result => {    
   console.log(result);
 })
}
}

代码 dboperation.js 有效。我是 JavaScript 新手。我在什么时候错了?它不显示结果。

谢谢。

【问题讨论】:

  • 我没有看到你在任何地方调用display函数...?
  • 对。我说我没有看到给display(不是showitem)的电话。在showitem 中,您创建一个分配给display 常量的函数。但是你永远不会调用那个函数。我不清楚你为什么有那个角色。如果您删除 const display = 行和与之匹配的 } 行,则该代码应该可以工作。 function showitem(id) { dboperation.get_file(id).then(result => { console.log(result); }); }
  • 我尝试按照您的建议进行编辑,但它不起作用。谢谢
  • @LeTho,您能在返回结果之前向我们展示函数 get_file 中的 console.log(result) 吗?我认为它不会从中返回正确的结果。

标签: javascript sql


【解决方案1】:

来自doc

您没有正确地将id 传递给query()。您应该使用@ 来传递变量input_id

示例如下:

const config = require("./config");
const sql = require("mssql");

async function get_file(id) {
  try {
    let pool = await sql.connect(config);
    let result = await pool
      .request()
      .input("input_id", sql.Int, id)
      .query(`SELECT * FROM items WHERE id = @input_id`);

    return result;
  } catch (error) {
    console.log(error);
  }
}

module.exports = {
  get_file,
};

【讨论】:

  • 谢谢。但它适用于 router.route('/view/:id').get((request,response)=>{ dboperation.get_file(request.params.id).then (result => { console.log(result) ; response.json(result[0]); }) })
  • @LeTho,你能用getBasicSpots更新你的问题吗?我们没有看到这个函数。
猜你喜欢
  • 2015-05-15
  • 1970-01-01
  • 2010-11-11
  • 2013-03-18
  • 2011-04-18
  • 2019-12-17
  • 2013-05-19
  • 1970-01-01
相关资源
最近更新 更多