我有一个非常简单的使用express的nodejs项目。当我在本地启动该项目时,我注意到大约每30秒就有一次调用POST来/ inform。我想知道什么叫告知,目的是什么。
我是Node的新手。这正常吗?我尚未为该调用实现路由,因此会导致404。
这是我的主要应用程序
const createError = require('http-errors');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const fileUpload = require('express-fileupload');
const app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(fileUpload());
// routes
const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
app.use((req, res, next) => {
console.log(req)
next(createError(404));
});
// error handler
app.use((err, req, res) => {
// 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');
});
// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`App listening on port ${PORT}`);
console.log('Press Ctrl+C to quit.');
});
在控制台中,大约每30秒就会看到一次:
POST /inform 404 14.002 ms - 2158
POST /inform 404 13.910 ms - 2158
POST /inform 404 31.536 ms - 2158
编辑:
感谢您的评论。我将快速端口更改为8000,并且不再发生。因此,本地计算机上的某些内容正在循环并发布到localhost:8080 / inform。我将不得不对此进行追踪。
答案 0 :(得分:1)
我在家有一个Ubiquity Unify网络堆栈。在笔记本电脑上运行(并停止)Unifi Controller之后,我的所有Unify设备继续发送POST <laptop IP>:8080/inform
。
我自己的应用程序的日志记录充满了相同的未知路由:“ / inform”错误。
解决方案:
答案 1 :(得分:0)
如果您正在听公共地址,那么这几乎是您PC甚至本地网络中其他系统上的任何应用程序。
您可以实现路由,以查看请求标头/正文是否提供任何提示来自何处。
诸如Wireshark之类的外部软件也可能会监视对localhost的网络调用,包括其来源。
否则,请使用其他端口,没人要向其发送定期ping。