Да, есть способ, вы должны читать файл каждый раз, когда происходит запрос (или кешировать его на некоторое время, для немного лучшей производительности).
Причина, по которой require
не делаетДело в том, что NodeJS автоматически кеширует модули для вас.Таким образом, даже если вам потребуется это в обработчике запросов (в use
), оно не будет работать.
Поскольку вы не можете использовать require
, это не будет удобно (или эффективно) дляиспользовать модуль.Поэтому ваш файл должен быть в формате JSON:
{
"sample" : "Text",
"ting" : "Toing"
}
Чтобы прочитать его, вы должны использовать модуль fs
(файловая система).Это позволяет вам каждый раз читать файл с диска:
const fs = require('fs');
app.get("/", (req, res) => {
// To read as a text file, you have to specify the correct
// encoding.
fs.readFile('./sample.json', 'utf8', (err, data) => {
// You should always specify the content type header,
// when you don't use 'res.json' for sending JSON.
res.set('Content-Type', 'application/json');
res.send(data)
})
});
Важно знать, что теперь data
является строкой, а не объектом.Вам понадобится JSON.parse()
, чтобы получить объект.
Также use
в этом случае не рекомендуется.Это для промежуточного программного обеспечения, вы должны рассмотреть возможность использования get
(как в моем примере) или all
, если вы хотите обрабатывать любой глагол.