Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js Express image赢得';上传后不显示_Javascript_Html_Node.js_Express - Fatal编程技术网

Javascript Node.js Express image赢得';上传后不显示

Javascript Node.js Express image赢得';上传后不显示,javascript,html,node.js,express,Javascript,Html,Node.js,Express,在使用node.js、express和multer上传图像后,我尝试在index.html上显示图像。multer实现基于教程 上传工作正常。图像显示在“/uploads”中,console.log按预期完成 html显示消息var中的“文件已上载” 开发工具控制台说:获取404(未找到) 我试图通过直接获取图片,但它没有显示出来 如果我能得到一个解释,让我明白我错过了什么,我将非常感激 这是我的server.js: app.use(express.static(__dirname + '/

在使用node.js、express和multer上传图像后,我尝试在index.html上显示图像。multer实现基于教程

  • 上传工作正常。图像显示在“/uploads”中,console.log按预期完成
  • html显示消息var中的“文件已上载”
  • 开发工具控制台说:获取404(未找到)
  • 我试图通过直接获取图片,但它没有显示出来
如果我能得到一个解释,让我明白我错过了什么,我将非常感激

这是我的server.js:

app.use(express.static(__dirname + '/uploads')); 

app.use(multer({ dest: './uploads/',
 rename: function (fieldname, filename) {
    return filename+Date.now();
  },
onFileUploadStart: function (file) {
  console.log(file.originalname + ' is starting ...')
},
onFileUploadComplete: function (file) {
  console.log(file.fieldname + ' uploaded to  ' + file.path)
  message = "<p>File uploaded.</p>"
  message += "<p><img src=\"" + file.path + "\"> </p>";
  done=true;
}
}));

app.get('/',function(req,res){
      res.sendfile("index.html");
});

app.post('/api/photo',function(req,res){
  if(done==true){
    console.log(req.files);
    res.end(message);
      //res.end("File uploaded.");
  }
});

app.listen(3000,function(){
    console.log("Working on port 3000");
});
app.use(express.static(uu dirname+/uploads));
app.use(multer({dest:'./上传/',
重命名:函数(字段名、文件名){
返回文件名+日期.now();
},
onFileUploadStart:函数(文件){
console.log(file.originalname+'正在启动…')
},
onFileUploadComplete:函数(文件){
console.log(file.fieldname+'上载到'+file.path)
message=“文件已上载。

” 消息+=“

”; 完成=正确; } })); app.get('/',函数(req,res){ res.sendfile(“index.html”); }); app.post('/api/photo',函数(req,res){ 如果(完成==真){ 控制台日志(请求文件); res.end(消息); //res.end(“上传文件”); } }); app.listen(3000,函数(){ 控制台日志(“在端口3000上工作”); });
和my index.html:

<html>
  <head>
    <title>File upload Node.</title>
  </head>
  <body>
      <form id="uploadForm"
          enctype="multipart/form-data"
          action="/api/photo"
          method="post">
      <input type="file" name="userPhoto" />
      <input type="submit" value="Upload Image" name="submit">
    </form>
      <div class="pic"> </div>
      <img src="http://127.0.0.1:3000/uploads/test1423920256762.jpg">
  </body>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.51/jquery.form.min.js"></script>
  <script>
  $(document).ready(function() {

     $('#uploadForm').submit(function() {

        $(this).ajaxSubmit({

            error: function(xhr) {
                    status('Error: ' + xhr.status);
            },

            success: function(response) {
                    $(response).appendTo('.pic');
                      console.log(response);
            }
    });

    return false;
    });    
});
  </script>
</html>

文件上传节点。
$(文档).ready(函数(){
$('#uploadForm')。提交(函数(){
$(此).ajaxSubmit({
错误:函数(xhr){
状态(“错误:”+xhr.status);
},
成功:功能(响应){
$(响应).appendTo('.pic');
控制台日志(响应);
}
});
返回false;
});    
});

提前感谢您的每一个提示。

我在您的代码中没有看到任何指向
/uploads/
目录的静态路径。哦!谢谢,我完全忘了。我添加了:app.use(express.static(uu dirname+/uploads));在app.use(multer…但这并没有解决它)行之前:(如果您使用
app.use(express.static(\uu dirname+'/uploads');
那么它就不是
http://127.0.0.1:3000/uploads/test1423920256762.jpg
但是
http://127.0.0.1:3000/test1423920256762.jpg
。您需要使用
app.use('/uploads',express.static(uu dirname+'/uploads'))
如果你想在它前面加上前缀
/uploads
最有可能是重复的:你解释了你的问题,你做了一些调查,提出了一个可读的问题,所以即使是新手犯的错误也很好。但是你永远不应该修改你的问题以使它得到解决。如果是重复的问题,那么n保持原样。如果你自己找到了一个解决方案,而这个解决方案在上还不存在,那么就为你的问题创建一个答案。