[英]i try to upload file in my mocha nodejs test but i got [Object null prototype] { file: { ... }}
我发现到处都是白色的解决方案:
app.use(bodyParser.urlencoded({extended: true}));
我可以用
JSON.stringify(req.files)
但我有办法解决我的问题
我的摩卡测试:
it('a file', async function () {
const body = { pseudo: 'user', password: 'test@123', mail: 'supermail' };
const response = await fetch(hostName + '/authentication/register', {
method: 'post',
body: JSON.stringify(body),
headers: { 'Content-Type': 'application/json' }
})
const usr = await response.json();
request.post('/usrAction1/doc')
.field('token', usr.token)
.attach('file', 'test/test.pdf')
.end(function (err, res) {
if (err) {
console.log(err)
}
console.log(res.status) // 'success' status
});
});
和我的溃败处理程序:
router.post('/doc', async (req, res) => {
console.log('req.files');
console.log(req.files)
})
还有我的 server.js:
import express from 'express'
import authentication from './src/login.js'
import './global/host.js'
import bodyParser from 'body-parser'
import cors from "cors"
import verifyToken from './middleware/auth.js'
import { userAction1, userAction2 } from './src/userAction.js'
import verifyLevel from './middleware/level.js'
import fileUpload from 'express-fileupload';
export default function myApp() {
const whitelist = [/http:\/\/localhost:*/, /http:\/\/127.0.0.1:*/]
const corsConfig = { origin: whitelist }
const app = express();
const port = hostPort;
//json encoded
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json())
app.use(cors(corsConfig))
// enable files upload
app.use(fileUpload({
createParentPath: true
}));
app.use('/usrAction1', userAction1())
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
return app;
}
myApp();
但不要为我工作。 我还测试了运行表单的白色外部客户端服务器,并将其发送到我测试的地址并执行相同的操作 [对象 null 原型]
谢谢 evry litel 的帮助
我在等待一些帮助,我正在使用我在 stackoverflow 上某处找到的这个 magique 代码:
req.files && Object.keys(req.files)?.map((obj, idx) => { console.log(req.files['file'].data) })
如果有人有更好的主意,我会等待。
感谢所有
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.