我正在尝试对节点/快速上传文件进行单元测试。这是我绑定节点的第一部分工作。我可以在前端完成这项工作,但是当我不得不对其进行测试时,它就下坡了。该文件在前端和单元测试时均被上传,但出现res.json is not a function
错误,主要是因为我将CVS更改为writeFile中的JSON文件。
我试图在相当长的时间内更改单元测试,但是我认为我被卡住了。我已经更改了文件参数,附加参数等...
test.js
var request = require("supertest");
const app = require('../routes/file');
describe('/upload file', () => {
it('Should upload a file', (done) => {
request(app).post('/upload',function(err,res){
console.log('asdasdasd');
done();
})
.set('Content-Type', 'multipart/form-data')
.set('Accept', 'application/json')
.attach('file', "testdata.csv")
.end(function(){
});
});
file.js
router.post('/upload',function(req, res) {
upload(req, res, function (err) {
let filePath = req.file.path;
let fileExtension = path.extname(filePath);
if (err instanceof multer.MulterError || fileExtension !== '.csv') {
return res.status(500).json(err);
} else if (err || fileExtension !== '.csv') {
return res.status(500).json(err);
}
CSVToJSON({
headers: ['id', 'name', 'age', 'address', 'team'],
noheader: true,
}).fromFile(filePath).then(source => {
helpers.writeFile('data',filePath,source,res);
});
});
});
helpers.js
writeFile(fileName,filePath,source,res){
if (fs.existsSync(filePath)) {
fs.writeFile(`../public/files/${fileName}.json`,JSON.stringify(source),'utf-8',function (err) {
if (err) {
return res.json({"error" : true, "message" : err,'status':500});
} else {
return res.json({"error" : false, "message" : "File Uploaded Successfuly",'status':200});
}
});
}
}
我希望状态为200,并且要定义res.json。