[英]Differences between Node.js and React.js applications
我在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)
}
當我說:
node .\realtime.js
讀取文件“ optional.csv”沒有問題。
但是,如果我將同一段代碼復制到使用create-react-app
構建的react.js
應用create-react-app
並嘗試運行它,則會出現錯誤:
TypeError: fs.readFileSync is not a function
當我這樣運行時:
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
文件的正確方法是什么? fs
是由node.js
實現的模塊,而javascript
本身未提供。 也許其他環境也提供了fs
,但是react
只是像fs
這樣的模塊,而不是其他環境,因此它不能提供額外的模塊
另一件事, react
代碼在瀏覽器中運行,您希望fs
指向哪里? 讀取每個用戶的文件系統?
如果您想讀取本地的csv文件。 您可以使用諸如Webpack之類的捆綁程序,該捆綁程序可以將csv文件捆綁到您的輸出Javascript文件中。 如果您要閱讀本地的 csv,則可以執行以下操作
const csv =require('/path/to/csv')
也許您需要一些插件,因為create-react-app
可能不提供csv加載器
這是從csv文件獲取json
的步驟
npm run eject
在項目根目錄中npm run eject
npm install --save dsv-loader
config
下打開webpack.config.dev.js
module>loaders>exclude(line 110)
,在列表中添加/\\.csv$/
module>loaders
{test: /\\.csv$/,loader: 'dsv-loader'}
添加{test: /\\.csv$/,loader: 'dsv-loader'}
條目 npm start
require('path/to/csv')
將返回json webpack.config.prod.js
上執行相同的操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.