meteor - 在 Meteor 中通过“require”导入 JSON 时出现问题
问题描述
以下代码用于加载本地静态 JSON 文件:
var stories = require('../stories/stories.json');
现在我想加载一个基于变量的文件,例如做这样的事情:
var storiesPath = '../stories/stories.json';
var stories = require(storiesPath);
但这会触发错误:
Error: Cannot find module '../stories/stories.json'
at require (packages/modules-runtime.js:123:19)
at meteorInstall.server.main.js (server/main.js:7:15)
有什么办法可以让这个工作吗?我假设我可以通过 Meteor http 包加载我的文件,但如果可以避免的话,我宁愿不添加另一个包。
感谢您的提示
解决方案
就像我在评论中说的那样,您可以轻松地在 require 中使用变量,例如,
> var x = 'fs';
> require(x).readFile
[Function]
所以这不是你要处理的问题。你确定你的第一个案例确实有效吗?这将是令人惊讶的。我认为由于使用了相对路径,您可能会遇到项目文件布局问题。我会远离那个。幸运的是,您可以很容易地使用资产!您可以将 json 文件放入private/
项目文件夹中,然后使用:
const stories = JSON.parse(Assets.getText('stories.json'));
推荐阅读
- php - 在php中使用strtotime格式获取多少天
- sql - SQL中的1对多关系
- javascript - 嵌套对象 Axios Post
- python - 如何在 django 中使用仿函数而不是函数?
- reactjs - 反应数组的映射对象键以显示为表头失败
- javascript - 不使用背景图像的视差效果?
- javascript - 无法正确控制 state 和 ref hook 的值
- c - 在连接到最大节点数的有向图中找到节点的最佳方法是什么?
- c - In POSIX, why can't a single condvar be used with multiple mutexes?
- android - Focus input in React webpage is not popping android keypad