Вы можете использовать express статическое промежуточное программное обеспечение для обслуживания статических файлов json из указанной папки.
const express = require('express');
const app = express();
// Setup express static middleware to look for files in the api directory for all requests starting with /api
app.use('/api', express.static('api') , function(req, res){
// Optional 404 handler
res.status(404);
res.json({error:{code:404}})
});
var server = app.listen(8081, () => {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
Затем вы можете получить доступ к вашему user.json
в папке /api/user.json
в localhost:8081/api/user.json
EDIT:
Если вы хотите иметь возможность добавлять несколько папок, вы можете создать назначенный каталог public
(вы можете называть это как угодно) и поместить туда все ваши папки верхнего уровня.
Рассмотрим следующие файлы JSON, хранящиеся во вложенном порядке:
/public/api/user.json
[Одноуровневое гнездо в папке API]
/public/data/config.json
[Одноуровневое гнездо в папке данных]
/public/data/server/config.json
[Двухуровневое гнездо в данных -> папка сервера]
затем вы можете сделать
const express = require('express');
const app = express();
// EDIT: added options to ensure json can be accessed without extension
app.use(express.static('public',{index:false, extensions:['json']}));
app.use(function (req, res) {
// Optional 404 handler
res.status(404);
res.json({
error: {
code: 404
}
});
})
var server = app.listen(8081, () => {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
и затем получите доступ к своим файлам как:
localhost:8081/api/user.json
ИЛИ localhost:8081/api/user
localhost:8081/data/config.json
ИЛИ localhost:8081/data/config
localhost:8081/data/server/config.json
ИЛИ localhost:8081/data/server/config
Ссылка на опции, принятые промежуточным статическим ПО Express
Дополнительное улучшение
ПРИМЕЧАНИЕ. Этот метод может случайно открыть конфиденциальные файлы конфигурации на стороне сервера [например, package.json
] и, возможно, всю вашу кодовую базу. Пожалуйста, используйте этот метод осторожно и только если вы знаете, что делаете.
Если вы не хотите создавать назначенный каталог (в данном случае «публичную» папку) и помещать туда все свои папки верхнего уровня, чтобы получить к ним доступ. Вы можете использовать код ниже:
const express = require('express');
const app = express();
var publicdir = __dirname + '/';
app.use(express.static(publicdir,{extensions:['json']})); //or ,{index:false, extensions:['json']}
app.use(function (req, res) {
res.status(404);
res.json({
error: {
code: 404
}
});
})
var server = app.listen(8081, () => {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})