我有一个非常简单的使用express的nodejs项目。当我在本地启动这个项目时,我注意到大约每 30 秒就会有东西调用 POST 来/inform。我想知道什么在调用 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
编辑:
感谢您的评论。我将我的 Express 端口更改为 8000,就不再发生这种情况了。因此,我本地计算机上的某些内容正在循环并发布到 localhost:8080/inform。我必须追查这一点。
我家里有一个 Ubiquity Unify 网络堆栈。在我的笔记本电脑上运行(并停止)Unifi Controller 后,我的所有 Unify 设备继续发送 POST <laptop IP>:8080/inform
.
我自己的应用程序的日志记录充满了相同的未知路由:“/inform”错误。
解决方案:
- 选择不同的端口
- 将您的应用程序绑定(bind)到“localhost”而不是“0.0.0.0”
- 获取专用 Controller 设备,例如 Raspberry Pi 或 Unifi Cloud Key
我是一名优秀的程序员,十分优秀!