繁体   English   中英

如何在不使用 jQuery 的情况下从外部 json 文件获取 JSON 数组?

[英]How to get JSON Array from external json file without using jQuery?

我正在创建经典汽车 API。现在我正在尝试从外部文件中提取 JSON 数组。 我朝着解决方案迈出了一步,但是我的“解决方案”将返回完整的 object,而不是数组 json。 来自 Postman 的截图 这是来自 api/routes/ 下的 vehicles.js 文件

import express from 'express';    
import path from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const router = express.Router();
router.get('/', (req, res, next) => {
    res.status(200).sendFile(path.join(__dirname, '../resources', 'vehicles.json'));
});
export default router;

app.js 看起来像这样:

import express from 'express';      
const app = express();     

import vehiclesRoute from './api/routes/vehicles.js';


app.use('/vehicles', vehiclesRoute);                                  

export default app; 

我尝试的其他内容是:

import parsedJSON from './resources/vehicles.json';
var vehiclesJSON = parsedJSON.vehicles;

router.get('/', (req, res, next) => {
    let vehiclesJSONpath = path.join(__dirname, '../resources', 'vehicles.json');
    res.status(200).fetch(vehiclesJSONpath)
  .then(res => res.json())
  .then(data => console.log(data));
});
  1. 有没有一种方法可以进行解析并将其包含在回调的响应正文中?
  2. 是否有我需要重新配置的路由,以便可以简单地提取数组? 谢谢!

将关闭此。 解决方案很简单。

'use strict';
let rawdata = fs.readFileSync('api/resources/vehicles.json');
let vehicles = JSON.parse(rawdata);

然后,为了能够将其作为响应:

router.get('/', (req, res, next) => {
    res.status(200).json(vehicles);
});

保存者: https://stackabuse.com/reading-and-writing-json-files-with-node.js/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM