为 require() 添加新扩展
你可以通过扩展 require.extensions
向 require()
添加新扩展。
对于 XML 示例:
// Add .xml for require()
require.extensions['.xml'] = (module, filename) => {
const fs = require('fs')
const xml2js = require('xml2js')
module.exports = (callback) => {
// Read required file.
fs.readFile(filename, 'utf8', (err, data) => {
if (err) {
callback(err)
return
}
// Parse it.
xml2js.parseString(data, (err, result) => {
callback(null, result)
})
})
}
}
如果 hello.xml
的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar>baz</bar>
<qux />
</foo>
你可以通过 require()
阅读和解析它:
require('./hello')((err, xml) {
if (err)
throw err;
console.log(err);
})
它打印 { foo: { bar: [ 'baz' ], qux: [ '' ] } }
。