首页 > 解决方案 > express js get方法后浏览器选项卡不断加载

问题描述

我正在尝试使用 Express.js 构建一个简单的 REST API,这是第一次使用它。

所以我使用npx express-generator. 然后,在 /routes/users.js 上,我添加了一个 get 方法来使用以下代码从 MSSQL 数据库中检索数据:

router.get('/api/v1/test', (req, res) => {
    (async () => {
        try {
            let pool = await sql.connect(dbConfig);
            let result1 = await pool.request().query('select * from andromedadb.dbo.test');
            console.dir(result1);
        } catch (err) {
            console.log('err', err);
        }
    })();
});

我知道连接成功,因为控制台打印以下内容:

{
  recordsets: [ [ [Object] ] ],
  recordset: [ { id: 1, name: 'hello', age: 17 } ],
  output: {},
  rowsAffected: [ 1 ]
}

我的问题是浏览器选项卡不断加载并一遍又一遍地执行 get 方法。

我还尝试了https://www.js-tutorials.com/nodejs-tutorial/simple-example-of-nodejs-express-with-mssql/#Listing_Nodejs_MSSQL_Using_Express上的代码片段,但同样的事情正在发生。

提前致谢。

标签: javascriptnode.jsexpress

解决方案


您需要将响应发送回请求。我刚刚修改了您的代码,请查看以下代码中的更改。

router.get('/api/v1/test', (req, res) => {
(async () => {
    try {
        let pool = await sql.connect(dbConfig);
        let result1 = await pool.request().query('select * from andromedadb.dbo.test');
        console.dir(result1);
        res.status(200).send(result1);
    } catch (err) {
        res.status(401).send(err);
        console.log('err', err);
    }
})();
});

推荐阅读