fs 与要求 JSON
fs vs require JSON
首先我会说我是 NodeJS 的新手,但我已经在 PHP 中开发了很多年(这并不意味着我知道多少)。
我最近开始摆弄 Node 并发现了一些奇怪的东西我希望有人可以帮助
我有一个文件调用 local.js
,它会拉入一个 .JSON
文件,用于设置 oAuth keys
等。
我拉入这个文件的最初方式是这样的:
var fs = require('fs')
var settings = fs.readFileSync('./config/settings.json', 'utf8')
我发现我无法通过 settings.key
从 settings
中的 JSON
读取值,这会给我 undefined
正在测试下面的另一种方法
var settings = require('./config/settings.json')
允许我通过 settings.key
从 JSON
读取值
我想知道为什么会这样?
fs.readFileSync()
只是读取文件中包含的数据,但不解析它。
为此,您需要一个额外的步骤:
var settings = JSON.parse( fs.readFileSync('./config/settings.json', 'utf8') );
使用require()
将自动解析数据。
Require
将参数中提供的路径中的所有代码获取到您的变量中。在第一种情况下,require('fs')
实际上是 shorthand 类似 require('/some/path/fs.js')
和 require.js
将代码存储在该路径(模块)中的变量中。该模块包含 readFileSync
方法,当然,它会将提供的文件的内容读入 settings
。现在 require
与 JSON 一样工作,因为如果你 require
一个 JSON 文件,require.js
将解析它并将它加载到你的变量中,您可以像使用基本的 js 对象一样使用它。
函数fs.readFileSync()
只读取文件内容作为字符串。
虽然 require()
将读取文件的内容并使用 JSON.parse()
函数对其进行解析,因此您将在 return.[=14 中获得一个 json 对象=]
如果您不在执行期间修改 json 文件,最好使用 require()
。
首先我会说我是 NodeJS 的新手,但我已经在 PHP 中开发了很多年(这并不意味着我知道多少)。
我最近开始摆弄 Node 并发现了一些奇怪的东西我希望有人可以帮助
我有一个文件调用 local.js
,它会拉入一个 .JSON
文件,用于设置 oAuth keys
等。
我拉入这个文件的最初方式是这样的:
var fs = require('fs')
var settings = fs.readFileSync('./config/settings.json', 'utf8')
我发现我无法通过 settings.key
从 settings
中的 JSON
读取值,这会给我 undefined
正在测试下面的另一种方法
var settings = require('./config/settings.json')
允许我通过 settings.key
JSON
读取值
我想知道为什么会这样?
fs.readFileSync()
只是读取文件中包含的数据,但不解析它。
为此,您需要一个额外的步骤:
var settings = JSON.parse( fs.readFileSync('./config/settings.json', 'utf8') );
使用require()
将自动解析数据。
Require
将参数中提供的路径中的所有代码获取到您的变量中。在第一种情况下,require('fs')
实际上是 shorthand 类似 require('/some/path/fs.js')
和 require.js
将代码存储在该路径(模块)中的变量中。该模块包含 readFileSync
方法,当然,它会将提供的文件的内容读入 settings
。现在 require
与 JSON 一样工作,因为如果你 require
一个 JSON 文件,require.js
将解析它并将它加载到你的变量中,您可以像使用基本的 js 对象一样使用它。
函数fs.readFileSync()
只读取文件内容作为字符串。
虽然 require()
将读取文件的内容并使用 JSON.parse()
函数对其进行解析,因此您将在 return.[=14 中获得一个 json 对象=]
如果您不在执行期间修改 json 文件,最好使用 require()
。