我完全是nodejs的新手。尝试在服务中读取json文件,然后在其他服务中使用它。 它告诉我我的服务未定义。我究竟做错了什么 ? 预先感谢!
Json服务
'use strict';
const fs = require('fs');
exports.getJobs = ()=> {
fs.readFile('./common/data/jobs.json', (err, data) => {
if (err) throw err;
if (data) {
return new Promise(function (resolve, reject) {
resolve(data);
});
}
});
}
和 JobsService
const JsonService = require('../../common/services/json.service');
exports.list = () => {
let jobs;
JsonService.getJobs().then((data)=>{
jobs = data;
return new Promise((resolve, reject) => {
if(jobs){
resolve(jobs);
}else{
reject(jobs)
}
});
});
};
最佳答案
如果你只需要读取json文件,你可以简单地这样做
const jobs = require("./common/data/jobs.json");
希望这有帮助。
您的代码无法正常工作的原因是您尝试将其用作 promise 但 getJobs 不返回 promise 。您需要将其包装在 Promise 中,然后返回。就是这样
const fs = require("fs");
exports.getJobs = () => {
return new Promise((resolve, reject) => {
fs.readFile("./common/data/jobs.json", (err, data) => {
if (err) {
reject(err);
}
if (data) {
resolve(data);
}
});
});
};
像这样使用它
const JsonService = require("../../common/services/json.service");
exports.list = () => {
let jobs;
JsonService.getJobs().then(data => {
console.log(data);
});
};
不需要在这里将其包装在 Promise 中。
但在你的情况下,简单的要求应该像我上面提到的那样工作。
关于node.js - NodeJS 服务函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60465772/