【发布时间】:2021-03-16 15:40:48
【问题描述】:
我的路由器似乎无法在远程服务器上运行,但它在本地服务器上运行完美。 我尝试了很多方法来解决它,但没有结果。
起初,给我的错误与phusion有关,因此如果app.js中的if语句现在它在日志中没有错误,但在浏览器上显示:无法获取/
请帮我解决,下面的代码sn-ps:
app.js
const http = require('http');
const app = require('./app')
if (typeof(PhusionPassenger) != 'undefined') {
PhusionPassenger.configure({ autoInstall: false });
}
const port = process.env.PORT || 9100;
const server = http.createServer(app);
server.listen(port, ()=>console.log(`Server running on port ${port}`));
index.js
if (process.env.ENV !== "development") {
require('dotenv').config();
}
// console.log(process.env)
const express = require('express');
const path = require('path');
const logger = require('morgan');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const helmet = require('helmet');
// Routes imports
const admin_users = require('./routes/admin/users');
const admin_locations = require('./routes/admin/locations');
// const admin_products = require('./routes/admin/products');
const admin_deliveries = require('./routes/admin/deliveries');
const admin_payments = require('./routes/admin/payments');
const admin_dashboard = require('./routes/admin/dashboard');
const admin_orders = require('./routes/admin/orders');
const users = require('./routes/users');
const products = require('./routes/products');
const deliveries = require('./routes/deliveries');
const payments = require('./routes/payments');
const tickets = require('./routes/tickets');
// const files = require('./routes/files');
const cards = require('./routes/cards');
let app = express();
app.set('trust proxy', true);
app.use(helmet());
// app.use(express.staticProvider(__dirname + '/public'));
// view engine setup
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Credentials", "true");
res.header("Access-Control-Allow-Methods", "GET, POST, PATCH, DELETE, PUT");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, X-Access-User, X-Access-Token,Authorization");
// next();
if ('OPTIONS' === req.method) {
//respond with 200
return res.status(200).json({});
// next();
}
else {
//move on
next();
}
});
// Routes
app.get('/', (req,res,next)=>{
res.send('server is up and running');
})
app.use('/admin/users', admin_users);
app.use('/admin/locations', admin_locations);
// app.use('/admin/products', admin_products);
app.use('/admin/deliveries', admin_deliveries);
app.use('/admin/payments', admin_payments);
app.use('/admin/orders', admin_orders);
app.use('/dashboard', admin_dashboard);
app.use('/users', users);
app.use('/products', products);
app.use('/deliveries', deliveries);
app.use('/payments', payments);
app.use('/tickets', tickets);
// app.use('/files', files);
app.use('/cards', cards);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
require("./scheduler")
// catch 404 and forward to error handler
app.use(function(req, res, next) {
let err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
require('./server');
module.exports = app;
【问题讨论】:
-
不应该是
router.get('/users',然后是app.use(router),而不是app.use('/users'? -
谢谢,我已经注意到了,但它仍然不起作用
-
My router does not seem to work on remote server but it works perfects on local server.什么不完全有效? Node 控制台肯定出错了? -
我该如何解决?
-
我实际上有一个错误日志文件。但是当谈到“无法获取/”时。没有显示错误。
标签: javascript node.js phusion