【问题标题】:Error 404 Node Js heroku app错误 404 Node Js heroku 应用程序
【发布时间】:2017-11-12 18:58:06
【问题描述】:

我正在尝试复制一个示例,只需更改 ng-model 名称和 url 以使客户端与服务器通信,但出现了该错误。

错误

POST https://nuevohorario.herokuapp.com/enviarAsignatura 404 (Not Found)

Possibly unhandled rejection: {"data":"<h1>Not Found</h1>\n<h2></h2>\n<pre></pre>\n","status":404,"config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/enviarAsignatura","data":{"data":"calculo"},"headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json;charset=utf-8"}},"statusText":"Not Found"}

客户端 -> 前端 - 端

.controller('ctrl-asignatura',function($scope,sk,$http){

                        $scope.date= new Date();
                        $scope.data=[];
                        var vector = [];
                        $scope.m=function(){

                            $http.post('/enviar', {data : $scope.asignatura}).then(function(response){
                                console.log(response);
                            })

                        }

                       sk.on('registrar',function(s){
                            alert(s);
                        });

后端 -> Node Js - Socket.IO

var express = require('express');
var router = express.Router();
var misocket = require('../routes/misocket');

/* GET users listing. */
router.post('/enviar', function(req, res, next) {

    console.log(misocket);

    misocket.emit("registrar",req.body);
    console.log(req.body);
    res.status(200).json({
        message  : "send message"
    });

});

module.exports = router;

misocket.js

var i =0;
var ioapp;
exports.connection= function(io){

    ioapp=io;

    io.on('connect',function(s){
        console.log("conetado");   
    })

}

exports.io=ioapp;

index.js

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

【问题讨论】:

  • 您的“后端”代码显示您设置的路由器,但它不显示您加载路由器的快速应用程序。是否有您未在此处显示的其他服务器代码?你能显示你初始化你的快递应用程序并导入上面的路由器代码的代码吗?此处的文档:expressjs.com/en/guide/routing.html#express-router
  • 好的,等一下,我点编辑问题
  • @LanceWhatley 我添加了更多代码,你能检查一下吗?
  • 在 index.js 中,我看不到您在哪里设置了 express 应用程序。我希望看到var app = express() 或类似的东西,它会初始化应用程序,然后你会绑定你的中间件和/或路由。这是在哪里发生的?
  • 这件事发生在前面,我猜,但是朋友推荐了这个,var express = require('express'); var app = express();

标签: javascript node.js heroku socket.io


【解决方案1】:

您似乎正在使用路由器级中间件

var router = express.Router()

尝试使用 router.use() 函数加载路由器级中间件。

router.use('/enviarAsignatura', function(req, res, next) {
     //your code here
}

【讨论】:

  • 没有用,只是从原始项目中更改变量名称,然后就发生了这种情况
猜你喜欢
  • 2018-01-27
  • 2018-08-24
  • 2014-12-13
  • 1970-01-01
  • 2015-07-15
  • 2020-10-10
  • 2014-07-10
  • 1970-01-01
  • 2013-11-24
相关资源
最近更新 更多