node.js - 节点路由间歇性工作
问题描述
使用节点我在创建 2 条路线时遇到了麻烦。有时 1 有效,而另一个无效。有时其他的有效,而第一个无效。有时两者都不起作用。浏览器只是旋转并超时。这没有我对它们进行任何更改。
我遇到了路线问题
/viewRecords/bne & /viewRecords/ssc
/ & /viewRecords 工作正常。
这是我创建的路线的当前版本。我还制作了具有相同结果的单独路线。例如:router.get('/bne') & router.get('/ssc')
服务器.js
const express = require('express');
const app = express();
const Datastore = require('nedb');
const expressLayouts = require('express-ejs-layouts');
const bneDB = new Datastore('databases/BNE.db');
const sscDB = new Datastore('databases/SSC.db');
bneDB.loadDatabase();
sscDB.loadDatabase();
const port = process.env.PORT || 3000;
app.set('view engine', 'ejs');
app.set('views', `${__dirname}/views`);
app.set('layout', 'layout/layout');
app.use(expressLayouts);
app.use(express.static('public'));
app.use(express.urlencoded({ extended: true }));
app.use(express.json({ limit: '1mb' }));
app.listen(port, () => console.log(`Server started on port ${port}`));
const registerRoute = require('./routes/register');
app.use('/', registerRoute);
const viewRecordsRoute = require('./routes/viewRecords');
app.use('/viewRecords', viewRecordsRoute);
viewRecordsRoute.js
const express = require('express');
const router = express.Router();
const Datastore = require('nedb');
const bneDB = new Datastore('databases/BNE.db');
const sscDB = new Datastore('databases/SSC.db');
bneDB.loadDatabase();
sscDB.loadDatabase();
router.get('/', (request, response) => {
response.render('viewRecords.ejs');
});
router.get('/:id', (request, response) => {
if (request.params.id == "bne") {
bneDB.find({}, (err, output) => {
if (err) {
console.log(err);
return;
}
response.render('siteRecords.ejs', {
site: 'Redbank',
records: output
});
return;
});
}
else {
sscDB.find({}, (err, output) => {
if (err) {
console.log(err);
return;
}
response.render('siteRecords.ejs', {
site: 'Coolum',
records: output
});
return;
});
}
});
module.exports = router;
解决方案
I believe it was the limitations of nedb. When I removed nedb, everything worked fine. I halved to size of the database and everything worked fine. I ended up migrating to mongo db and everything worked fine. It really seemed like I hit the limit of nedb.
I have been using nedb for quite a while for smaller projects without issue. This just happened to get bigger and bigger.
推荐阅读
- python - 如何在 Python 中使用 statsmodels.api.OLS
- c++ - 自动化工作室代码覆盖问题(目标上没有 gcda 文件)
- flutter - 没有为类定义方法“PermissionHandler”
- javascript - 更改数组并返回一个新数组
- c# - .NET Core 3.1 必需的字符串属性设置为空格导致 ModelState.IsValid False
- javascript - 在 Raphael 上聆听动画元素的坐标
- c++ - c++ 在编译时检查函数是否被调用
- .net-core - 错误 500.19 - 在 IIS 中部署 Dot net core api 项目
- python - 使用 int() 进行转换将 16.0 转换为 15
- android - 如何在 anroid studio 中设置永久抖动 sdk 路径?