[英]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.