我对后端的了解不是最好的......
我在解决这个问题时遇到了问题。
我有一个ng2上传图片,从那里它会对api做一个post req,但是我想有一个服务器(来自节点的http-server)只是为了在那里添加文件,但我不知道如何离开这里:(
所以ng2(FE) - > Hapi(API) - > http-server(文件存储)
这些是我的档案 的 upload.provider.js const fs = require(' fs');
class UploadProvider {
constructor(path, request, reply) {
this.path = path;
this.data = request.payload;
this.reply = reply;
this.image();
}
image() {
if (this.data.uploadFile.hapi.filename) {
const name = this.data.uploadFile.hapi.filename.replace(/\ /g,'-');
const path = this.path + name;
const file = fs.createWriteStream(path);
file.on('error', (err) => {
console.error(err)
});
this.data.uploadFile.pipe(file);
this.data.uploadFile.on('end', (err) => {
var ret = {
filename: this.data.uploadFile.hapi.filename.replace(/\ /g,'-'),
headers: this.data.uploadFile.hapi.headers
}
this.reply(JSON.stringify(ret));
})
}
}
}
module.exports = UploadProvider;
teaser.controller.js
const upload = require('../providers/upload.provider');
const Teaser = require('../model/teaser.model');
var teaser = {
upload: (request, reply) => {
new upload('http://127.0.0.1:8080/teaser-images/', request, reply);
},
....
我一直得到这个输出:
{错误:ENOENT:没有这样的文件或目录,打开' http://192.168.33.1:8080/teaser-images/IX4A6789.jpg' 错误:-2, 代码:' ENOENT', 系统调用:'打开', 路径:' http://127.0.0.1:8080/teaser-images/IX4A6789.jpg' }
非常感谢任何帮助,这一直困扰着我。
我真的想更好地理解流缓冲区的概念。
最佳, 乔
答案 0 :(得分:0)
我忘记了浏览器最重要的事实之一......它们基于GET。
我试图将图像发送到不是服务器的地方。在文件夹上创建http服务器之后:
new upload('../images', request, reply);
然后在该文件夹上添加http-server
我能够访问我想要的图像。