我是这个新手,任何人都可以解释一下,如果我从角度点击API端点发送图像/视频。我应该如何在express.js中编写route.post
路由来获取传入的图像/视频。
我正在使用FileTransfer Ionic本机插件将捕获的图像/视频发送到我的服务器。
this.mediaCapture.captureImage()
.then((data: MediaFile[]) => {
let option = {
enableHighAccuracy : true
}
this.geolocation.getCurrentPosition(option)
.then((resp) => {
let ionic: LatLng = new LatLng(resp.coords.latitude, resp.coords.longitude);
const fileTransfer: FileTransferObject = this.transfer.create();
let options: FileUploadOptions = {
fileKey: 'File',
fileName: data['0'].name,
params: {
postTitle: 'hey there',
postDesc: 'jshfdjnsbdkjcfweigfc,ndsbfckjg',
postLat : ionic.lat,
postLng : ionic.lng,
userId : this.loggedInUserId
}
}
fileTransfer.upload(data['0'].fullPath, 'https://***************.com/images/postImages', options)
.then((data) => {
console.log('image has been uploaded');
}, (err) => {
// error
})
})
})
首先我捕获图像然后是位置坐标,然后我将文件和数据发送到API enpoint。
router.post('/postImages', function(req, res) {
pool.getConnection(function(err, connection) {
console.log(req.body);
var sql = "INSERT INTO posts (post_title, post_desc, post_lat, post_lng, user_id) VALUES (?, ?, ?, ?, ?)";
var inserts = [req.body.postTitle, req.body.postDesc, req.body.postLat, req.body.postLng, req.body.userId];
sql = mysql.format(sql, inserts);
console.log(sql);
connection.query(sql, function(error, results) {
res.json(results);
connection.release();
if(error) throw error;
});
});
});
API命中已正确完成,但我没有收到req正文中的任何内容,目录中也没有文件。请帮助我,我处于最后一年项目提交的边缘。