【问题标题】:Why this error coming while running Node.js server?为什么在运行 Node.js 服务器时会出现此错误?
【发布时间】:2015-11-03 13:02:15
【问题描述】:

我在运行 Node.js 服务器时遇到此错误:

Error: Not Found
    at C:\wamp\www\scope-leads-node-master\MyApp\app.js:30:13
    at Layer.handle [as handle_request] (C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\index.js:312:13)
    at C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\index.js:280:7
    at Function.process_params (C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\index.js:330:12)
    at next (C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\index.js:271:10)
    at C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\index.js:618:15
    at next (C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\index.js:256:14)
    at Function.handle (C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\index.js:176:3)
    at router (C:\wamp\www\scope-leads-node-master\MyApp\node_modules\express\lib\router\index.js:46:12)
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); // 查看引擎设置 app.set('views', path.join(__dirname, 'views')); app.set('视图引擎', 'jade'); // 将您的 favicon 放入 /public 后取消注释 //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', 路线); app.use('/users', users); // 捕获 404 并转发到错误处理程序 app.use(function(req, res, next) { var err = new Error('未找到'); 错误状态= 404; 下一个(错误); }); // 错误处理程序 // 开发错误处理程序 // 将打印堆栈跟踪 if (app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('错误', { 消息:err.message, 错误:错误 }); }); } // 生产错误处理程序 // 没有堆栈跟踪泄露给用户 app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('错误', { 消息:err.message, 错误: {} }); }); module.exports = 应用程序;

【问题讨论】:

  • 可能是在“C:\wamp\www\scope-leads-node-master\MyApp\”路径中找不到app.js。检查它是否存在跨度>
  • 谢谢 Subham,app.js 就在那里。但我不工作。
  • 你能分享你的 app.js 吗?这似乎有些问题。
  • @robertklep - 完成!感谢您的建议!
  • 如何在这里分享我的代码?不知道

标签: node.js


【解决方案1】:

我也遇到了同样的错误,在寻找答案时发现了这个帖子。

我在这里分享你应该解决这个错误的方法。

  1. 首先,注释掉处理 404 错误的行。
 app.use(function (req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);  });
  1. 现在重新加载您的页面,您会看到类似

无法获取/(某些路线)

  1. 理解:404 或 Not Found 错误消息是标准 HTTP 响应代码,表示客户端能够与给定服务器通信,但服务器找不到请求的内容。现在它说丢失的资源在路线“/(某些路线)”上。

  2. 处理错误

如果是网页,问题是在~/routes/目录下的JS文件中找不到“/(some route)”。您可能忘记处理该路线,或者可能是错字或其他东西。妥善处理。

如果是资源,请确保该资源存在于项目的上述路径中。

【讨论】:

    【解决方案2】:

    终于,它开始工作了。我仍然在http://localhost:3000 中看到not found 错误。但一切正常。我已经使用另一台计算机来执行此操作。刚刚做了以下。

    npm install express
    
    npm install
    
    npm start
    

    NodeJS, git server 应该已经安装在我们的机器上。

    【讨论】:

      【解决方案3】:

      嗯,这是您在编写的中间件中传递的错误(第 30 行):

      app.use(function(req, res, next) {
        var err = new Error('Not Found');
        err.status = 404;
        next(err);
      });
      

      此代码只是在每个 HTTP 请求上传递一个错误,您应该将其注释掉。

      【讨论】:

      • 我做到了,但现在得到了这个 --> 无法获取 /
      • 实际上,我看到你确实添加了 app.use('/', routes);但是文件'./routes/index'中有什么?
      • 好吧,该文件中没有为 / 定义路由。您应该添加一条路线或检查现有路线之一
      • 好的。我只是使用以下 npm install express -> npm start 启动应用程序。这样可以吗,还是我做错了什么?
      • 你应该以node app.js(或主js文件名)开始它
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 2023-04-01
      相关资源
      最近更新 更多