[英]Differences between Node.js and React.js applications
I have a section of code in javascript that looks like this: 我在javascript中有一段代码看起来像这样:
var fs = require('fs');
var subscriptions = []
var array = fs.readFileSync('optimal.csv', 'utf8').toString().split("\r");
for (i in array) {
stock = array[i].split(':')[0];
if (stock)
subscriptions.push(stock)
}
When I say: 当我说:
node .\realtime.js
it has no problem reading the file 'optional.csv'. 读取文件“ optional.csv”没有问题。
However, if I copy the same section of code to a react.js
application built with create-react-app
and try to run it, I get errors: 但是,如果我将同一段代码复制到使用
create-react-app
构建的react.js
应用create-react-app
并尝试运行它,则会出现错误:
TypeError: fs.readFileSync is not a function
when I run it thus: 当我这样运行时:
npm run start
var fs = require('fs');
// Grid data as an array of arrays
const quoteList = [];
var i = 0;
var stock;
var array = fs.readFileSync('optimal.csv').toString().split("\r");
for (i in array) {
stock = array[i].split(':')[0];
if (stock)
quoteList.push(stock)
}
.csv
file from a purely react application? .csv
文件的正确方法是什么? fs
is a module implemented by node.js
which is not provided by javascript
itself. fs
是由node.js
实现的模块,而javascript
本身未提供。 Maybe other environments provide fs
as well, but react
is just a module like fs
, rather than another environment, so it can not provide extra module 也许其他环境也提供了
fs
,但是react
只是像fs
这样的模块,而不是其他环境,因此它不能提供额外的模块
Another thing, react
code run in browser, where you expect fs
refer to? 另一件事,
react
代码在浏览器中运行,您希望fs
指向哪里? Read every user's file system? 读取每个用户的文件系统?
If you want to read your local csv file. 如果您想读取本地的csv文件。 You can use some bundler like Webpack which can bundle csv file into your output Javascript file.
您可以使用诸如Webpack之类的捆绑程序,该捆绑程序可以将csv文件捆绑到您的输出Javascript文件中。 If reading local csv is what you want, you can do some thing like
如果您要阅读本地的 csv,则可以执行以下操作
const csv =require('/path/to/csv')
Maybe you need some plugin, because create-react-app
may not provide the csv loader 也许您需要一些插件,因为
create-react-app
可能不提供csv加载器
Here are the steps to get a json
from the csv file 这是从csv文件获取
json
的步骤
npm run eject
in the project root npm run eject
在项目根目录中npm run eject
npm install --save dsv-loader
webpack.config.dev.js
under config
config
下打开webpack.config.dev.js
module>loaders>exclude(line 110)
add /\\.csv$/
in the list module>loaders>exclude(line 110)
,在列表中添加/\\.csv$/
{test: /\\.csv$/,loader: 'dsv-loader'}
entry in module>loaders
module>loaders
{test: /\\.csv$/,loader: 'dsv-loader'}
添加{test: /\\.csv$/,loader: 'dsv-loader'}
条目 npm start
npm start
require('path/to/csv')
will return json require('path/to/csv')
将返回json webpack.config.prod.js
if you need the production bundle webpack.config.prod.js
上执行相同的操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.