【问题标题】:Cannot GET / error in nodeJS无法在 nodeJS 中获取 / 错误
【发布时间】:2017-04-23 06:58:16
【问题描述】:

我正在开发一个简单的 MEAN 堆栈应用程序。我正在使用角度路由根据单击的项目的 ID 重定向到页面,如下所示:

   when('/story/:id', {
      template: '<news-detail></news-detail>'
   })

当一个项目被点击时,它应该会转到这样的页面:http://localhost:3002/story/58fbcf765865db1d8da94b41

但在该页面上,我收到“无法获取 /story/58fbcf765865db1d8da94b41”节点错误。

从后端我试过这个:

 app.get('/story/:id', function(req, res){
   if(req){
    var id = req.params.id;
    PostProfile.News.findById(id, function(err, item){
        if(item){
            console.log("found")
            res.send(item)
        }
    })
  }
})

这个解决方案只是在页面上显示一些原始 json

 {"_id":"58fbc2834f675c1cdb7dc628","title": .....

这是什么?我如何使用 angular 来通过 id 发出请求,而无需先通过 nodejs。

非常感谢。

【问题讨论】:

  • 这是一个网络服务器(表达我假设)错误,而不是节点错误。您也可能有节点错误,但是您的代码没有输出错误,或者您没有找到查找位置(stderr、stdout 或日志)。首先,我将处理您的回调中的错误:if (err){ console.error( err )) 在您的 findById 中。另外,if(req) 感觉很多余。如果您的快速路由方法中没有 req-object,那么您确实发生了一些奇怪的事情......
  • 第 1 步,检查您的网络选项卡并检查呼叫以尝试找出它的距离(您所拥有的是服务器响应,所以继续!)。第 2 步:检查服务器端是否收到呼叫、记录、输出。第3步:没有错误?确保您的代码以某种方式输出错误。第 4 步:当您使用 SO 进行真正的错误检查时,但到那时您可能会弄清楚其余的! :) 你真正的问题是找到真正的错误信息。
  • 只是为了理顺最后几位。 when('/story/:id', { 这是一条有角度的路线。它假定[webroot]/story/:id。您的后端可能与您的 webroot 不同。是的,当然可以配置 express 或 nginx 或其他任何东西来捕获 /story/ 并确保后端得到它,但通常并非如此。正常的事情是清楚地分开正面和背面。 (例如 /api/story/:id 或另一个端口 `localhost:4004/story/:id'。)

标签: javascript angularjs node.js express


【解决方案1】:

要转到某个页面,您必须执行 res.render 例如:

    router.get('/story/:id', function(req, res) {
    var id = req.params.id;
    PostProfile.News.findById(id, function(err, item){
      res.render('somePage', {
        pageTitle: item.title,
        body: item.body
     });
   })
});

【讨论】:

    猜你喜欢
    • 2014-02-14
    • 1970-01-01
    • 2012-10-31
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 2020-04-06
    相关资源
    最近更新 更多