如何解决Express中console.log的问题

时间:2018-12-27 07:49:36

标签: node.js express

我的Express服务器在处理请求时停止执行console.log

在此类问题上,通常建议在路由之前使用app.use(express.static(srPath))进行公告,此建议应得到遵守。 我对静态有问题,当我在这一行中评论时,日志记录开始起作用。我不知道为什么会这样 快速版本:一直使用“ ^ 4.16.4” 回购:https://gitlab.com/igor_borisch/react-redux-node-app

var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');
var axios = require ('axios');
var app = express();
var srcPath = path.join(__dirname, './public');


app.use(express.static(srcPath));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));


app.get('/', (req, res) => {
    console.log(srcPath);
    res.sendFile('./index.html', {root: srcPath});
});


app.get('/get-currencies', (req,res) => {
    axios.get('https://api.exchangeratesapi.io/latest?base=RUB')
        .then(function (response) {
            console.log(response.data);
            res.send(JSON.stringify(response.data));
        });
});

app.listen(3001, () => console.log('app listen on port 3001'));

1 个答案:

答案 0 :(得分:0)

我解决了以下问题,express支持中间处理程序,该回调函数的参数中的中间处理程序具有3个pfrfmeter:req,res,next。据我了解,您不需要定义下一个,而express会自动找到您使用的路由的下一个处理程序并执行它。 首先放置中间处理程序非常重要。我尝试写类似:

app.use('/',(req,res,next) => {express.static(srcPath)}) 

但它不起作用,可能是因为express.static方法是外部模块serve-static的包装

我下面的示例正常工作

var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var path = require('path');
var axios = require ('axios');
var app = express();
var srcPath = path.join(__dirname, '../public');


app.get('/',(req,res,next) => { //here just add next parameter
    console.log('login');
    next();
})

app.use('/',express.static(srcPath));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));


app.get('/get-currencies', (req,res) => {
    console.log('alo')
     axios.get('http://yandex.ru/')
        .then(function (response) {
            console.log('recieve response');
            res.send(response.data);
        })
        .catch((error) => {
            res.send(error);
        });
    }
);


app.listen(3001, () => console.log('app listening on port 3001'));
相关问题