我有一个使用express js的简单node js应用程序。一切都可以在localhost上正常运行,但是当我将其部署到Dreamhost时,API路由(example.com/api/request)停止工作并响应404错误。静态路由在已部署的版本上正常工作。
我也将其部署到了Herokuapp,并且在那里一切正常。 Heroku可能做了一些我没有为Dreamhost版本做的事情,但是我不知道那是什么。
这是我的server.js代码:
var express = require("express");
var bodyParser = require("body-parser");
var path = require("path");
var app = express();
var PORT = process.env.PORT ||3306;
var db = require("./models");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use('/', express.static(path.join(__dirname, 'public')))
require("./routes/api-routes.js")(app);
require("./routes/html-routes.js")(app);
db.sequelize.sync().then(function() {
app.listen(PORT, function() {
console.log("App listening on PORT " + PORT);
});
});
和我的api-routes.js:
var db = require("../models");
module.exports = function(app) {
app.get("/api/all", function(req, res) {
res.send("test")
});
app.get("/api/:zip", function(req, res){
var zipcode = req.params.zip;
db.All.findAll({
where:{
zcta: zipcode
}
}).then(function(dbZip){
res.json(dbZip)
})
})
app.get("/api/county/:county", function(req, res){
var county = req.params.county;
db.All.findOne({
where:{
county: county
}
}).then(function(dbZip){
res.json(dbZip)
})
})
};