我遇到了以下问题。
当我开发我的expressjs路由时,在localhost上我的代码完美无缺。在postman上我也取得了成功,也在我的webapp上。
但是相同的代码不适用于heroku。 我总是在路线上得到404。
我做了一些测试,我发现问题出现在app.post路线上。
当我使用app.get时,代码可以在localhost和heroku上运行,但是使用app.post只能在localhost中工作而不能在heroku上工作,我有404。
我的节点版本和expressjs版本在两者上都是相同的。这被检查了。
var express = require('express');
var app = express();
var cors = require('cors');
var bodyParser = require('body-parser');
var morgan = require('morgan');
var mongoose = require('mongoose');
var config = require('./config'); // get our config file
var port = process.env.PORT || 3333;
mongoose.connect(config.database);
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(morgan('dev'));
app.use(cors());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.post('/a', function(req, res) {
res.json({ message: 'hooray! welcome to our api!' });
});
app.listen(port);
来自heroku日志的消息
at=info method=GET path="/a" host=nx-admin-api.herokuapp.com request_id=60a9fefc-92f1-48fc-a4c8-740e4d61bcd7 fwd="201.53.63.230" dyno=web.1 connect=4ms service=43ms status=404 bytes=322
2016-02-02T02:07:29.306917+00:00 app[web.1]: GET /a 404 46.719 ms - 14
答案 0 :(得分:0)
您应该使用CORS模块。像这样;
...
app.use(bodyParser.json());
app.use(cors());
...