首页 > 解决方案 > 节点路由间歇性工作

问题描述

使用节点我在创建 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;

标签: node.jsexpressejs

解决方案


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.


推荐阅读