【问题标题】:How to solve a cannot GET / error in node.js?如何解决 node.js 中的无法 GET / 错误?
【发布时间】:2019-04-08 18:39:27
【问题描述】:

我正在使用教程,因此添加了以下代码

var express = require('express'); // Web Framework
var app = express();
var sql = require('mssql'); // MS Sql Server client

// Connection string parameters.
var sqlConfig = {
    user: 'student',
    password: 'something',
    server: 'localhost',
    database: 'Raw_Data'
}

// Start server and listen on http://localhost:8081/
var server = app.listen(8081, function () {
    var host = server.address().address
    var port = server.address().port

    console.log("app listening at http://%s:%s", host, port)
})
app.get('/', function (req, res) {
    sql.connect(sqlConfig, function() {
        var request = new sql.Request();
        request.query('select * from testtable', function(err, recordset) {
            if(err) console.log(err);
            res.end(JSON.stringify(recordset)); // Result in JSON format
        });
    });
})

使用节点 server.js 启动服务器后,我在访问 localhost:8081 时收到错误语句无法 GET/。你有什么想法吗?

【问题讨论】:

  • 查看您的代码,我没有发现任何错误。我将您的代码复制到我的本地,注释 sql 部分并执行。我没有发现任何问题。我假设服务器可能尚未在您的系统中启动。启动服务器后,您是否看到控制台日志“app正在侦听 http://:::8081”?
  • 是的,我看到 C:\Users\Mi>node test1.js 应用程序正在监听 http://:::8081
  • @oreo2geek 能否请您 console.log(recordset) 告诉我们连接是否已建立?
  • 您是否从运行 Express 服务器的同一台计算机访问它?
  • @sreehari 它返回给我一个错误:ReferenceError:recordset is not defined at Server. (C:\Users\Mi\test1.js:19:17) at Object.onceWrapper (events .js:273:13) 在 Server.emit (events.js:182:13) 在 emitListeningNT (net.js:1320:10) 在 process._tickCallback (internal/process/next_tick.js:63:19) 在 Function .Module.runMain (internal/modules/cjs/loader.js:744:11) 在启动时 (internal/bootstrap/node.js:285:19) 在 bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)

标签: javascript node.js express routes


【解决方案1】:

您需要创建一个节点路由器来重定向 / 中的请求,您的代码中缺少该请求

var express = require('express');
var app = express();
var router = express.Router();
/*other code*/
//create a router for /
router.get('/', function (req, res) {
    sql.connect(sqlConfig, function() {
        var request = new sql.Request();
        request.query('select * from testtable', function(err, recordset) {
            if(err) console.log(err);
            res.end(JSON.stringify(recordset)); // Result in JSON format
        });
    });
});

【讨论】:

  • 我们在 router.get('/testtable', function (req, res) 中放了一个表名,但这不起作用……你是这个意思吗?
猜你喜欢
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 2020-07-19
  • 1970-01-01
相关资源
最近更新 更多