node.js - express 路由一直报错
本文介绍了node.js - express 路由一直报错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
WRONG: { Error: Not Found
at F:\nodeServer\frontend_service\dist\app.js:65:15
at Layer.handle [as handle_request] (F:\nodeServer\frontend_service\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (F:\nodeServer\frontend_service\node_modules\express\lib\router\index.js:312:13)
at F:\nodeServer\frontend_service\node_modules\express\lib\router\index.js:280:7
at Function.process_params (F:\nodeServer\frontend_service\node_modules\express\lib\router\index.js:330:12)
at next (F:\nodeServer\frontend_service\node_modules\express\lib\router\index.js:271:10)
at cookieParser (F:\nodeServer\frontend_service\node_modules\cookie-parser\index.js:56:14)
at Layer.handle [as handle_request] (F:\nodeServer\frontend_service\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (F:\nodeServer\frontend_service\node_modules\express\lib\router\index.js:312:13)
at F:\nodeServer\frontend_service\node_modules\express\lib\router\index.js:280:7 status: 404 }
app.js代码
import express from 'express';
import path from 'path';
//import favicon from 'serve-favicon';
import cookieParser from 'cookie-parser';
import bodyParser from 'body-parser';
import template from 'art-template';
import {rootPath} from './cfg/path';
//页面通用请求
import common from './routes/common';
//监控请求
import moniter from './routes/monitor';
const app = express();
// view engine setup
template.config('base', '');
template.config('extname', '.html');
app.engine('.html', template.__express);
app.set('view engine', 'html');
app.set('views', path.join(rootPath, './views'));
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(cookieParser());
//将静态资源访问目录设置到public下,访问时目录名指定为files(可以指定任意名称)
app.use('/frontend_service/files', express.static(path.join(rootPath, './public')));
app.use('/frontend_service/common', common);
app.use('/frontend_service/monitor', moniter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
let err = new Error('Not Found');
err.status = 404;
console.error('WRONG:', '404 Not Found');
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
console.error('WRONG:', err);
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
console.error('WRONG:', err);
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
common.js代码
//监听接收get请求
router.get('/', function(req, res, next) {
requestCombine(req, res, next, 1);
});
//监听接收post请求
router.post('/', function(req, res, next) {
requestCombine(req, res, next, 2);
});
没什么特别的啊,之前有一个监控的路由都是这么写的.搞了半天没搞懂是什么原因.
stackflow上面有说是直接把404错误注掉,不过这肯定不是最好的做法
有人遇到过这种错误吗?
麻烦了...
解决方案
确定你的
common.js
引入路径是否正确确定你的
requestCombine(req,res,next,x)
方法里是否报错个人觉得是你的路径问题
这篇关于node.js - express 路由一直报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文