node.js - express 路由一直报错

查看:452
本文介绍了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错误注掉,不过这肯定不是最好的做法
有人遇到过这种错误吗?
麻烦了...

解决方案

  1. 确定你的common.js引入路径是否正确

  2. 确定你的requestCombine(req,res,next,x)方法里是否报错

  3. 个人觉得是你的路径问题

这篇关于node.js - express 路由一直报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆