NPM nodemon并在终端中调试无输出

时间:2018-10-06 14:22:48

标签: javascript node.js terminal output

我有这个简单的代码:

const express = require('express');
const chalk = require('chalk');
const debug = require('debug');
const morgan = require('morgan');
const path = require('path');

const app = express();
const port = process.env.PORT || 3000;

app.use(morgan('tiny'));
app.use(express.static(path.join(__dirname, '/public')));
app.use('/css', express.static(path.join(__dirname, '/node_modules/bootstrap/dist/css')));
app.use('/js', express.static(path.join(__dirname, '/node_modules/bootstrap/dist/js')));
app.use('/js', express.static(path.join(__dirname, '/node_modules/jquery/dist')));

app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname, '/views/index.html'));
});

app.listen(port, () => {
    debug(`listening on port ${chalk.green(port)}`);
});

问题是,无论我做什么,启动应用程序listening on port 4000的输出都不会出现,但是其余的一切都正常,一切都会正常进行。它应该100%工作,也许您可​​以帮助我。谢谢!

2 个答案:

答案 0 :(得分:0)

根据文档和您的应用程序,这里是应用程序,修改后的内容和输出的精简示例。

文档:https://www.npmjs.com/package/debug

您的应用(经过微调和修改)-请注意添加了something。这就是调试附加的内容

const express = require('express');
const chalk = require('chalk');
const debug = require('debug')('something');

const app = express();
const port = process.env.PORT || 3004;

debug('some debug statement');

app.listen(port, () => {
    debug(`listening on port ${chalk.green(port)}`);
});

来自终端线路的呼叫:

$ DEBUG=something node ~/path_to_your_project/project_name/app.js

输出:

Chriss-MBP-3:untitled1 lcsharp $ DEBUG =某个节点

~/WebstormProjects/untitled1/app.js
  something some debug statement +0ms
  something listening on port 3004 +9ms

答案 1 :(得分:0)

如果要使用debug模块,则必须使用名称空间初始化记录器:

const debug = require('debug')('my-namespace')

默认情况下,根本不会记录debug的输出,您需要使用DEBUG环境变量来定义应记录的内容。取决于您使用的外壳,看起来可能像这样:

DEBUG=* node index.js

DEBUG=*表示已记录所有内容,因为*是通配符。

如果您只想登录my-namespace,则必须为:

DEBUG=my-namespace node index.js

您可以将登录分为以下几个部分:

const debugApp = require('debug')('my-namespace:app')
const debugModuleA = require('debug')('my-namespace:module-a')
const debugModuleB = require('debug')('my-namespace:module-b')

通过my-namespace:*,您可以登录appmodule-amodule-b

对于nodemon可以这样做:

DEBUG=my-namespace nodemon index.js