#node.js
Вопрос:
Я пытаюсь получить содержимое файла в формате JSON, но не могу разобрать JSON из — за первой строки
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"module": "es2020",
"lib": [
"es2018",
"dom"
]
}
}
Я пытаюсь получить содержимое файла, запустив этот код в Node.JS
function initTSConfig() {
const filePath = path.join(__dirname, 'tsconfig.json');
readFile(filePath)
.then(content => {
// let config = JSON.parse(content);
console.log(typeof content);
console.log(`---> TS Config was changed successfully`);
})
.catch(e => {
console.log(`---> TS Config was not changed because of ${e}`);
})
}
function readFile(filePath) {
return new Promise((resolve, reject) => {
fs.readFile(filePath, 'utf-8', (err, content) => {
if (err) {
console.warn(err);
reject(err);
}
resolve(content);
})
})
}
Любая помощь будет признательна
Ответ №1:
Вы могли бы просто отрезать первую строку перед анализом.
readFile(filePath)
.then((content) => {
const json = content
.split('n')
.slice(1)
.join('n');
const parsedObj = JSON.parse(json);
Если вы не используете чрезвычайно устаревшую версию Node, я бы также предложил использовать fs.promises
вместо обещанной пользовательской readFile
.
fs.promises.readFile(filePath, 'utf-8')
.then((content) => {
Комментарии:
1. Я использую версию узла 14.x, спасибо @CertainPerformance. Позвольте мне попробовать этот пример и вернуться