尝试从wikipedia获取图像并在node.js中提供

尝试从wikipedia获取图像并在node.js中提供,node.js,Node.js,我试图在node.js中创建一个Web服务器,从Wikipedia下载一个图像,并将其保存在页面上。我不能让它工作。我将代码粘贴到在线沙盒中: fs.js:415 binding.write(fd, buffer, offset, length, position, wrapper);

我试图在node.js中创建一个Web服务器,从Wikipedia下载一个图像,并将其保存在页面上。我不能让它工作。我将代码粘贴到在线沙盒中:

fs.js:415                                                                                    
  binding.write(fd, buffer, offset, length, position, wrapper);                              
          ^                                                                                  
TypeError: Bad argument                                                                      
    at Object.fs.write (fs.js:415:11)                                                        
    at IncomingMessage.<anonymous> (server.js:18:12)                                         
    at IncomingMessage.EventEmitter.emit (events.js:96:17)                                   
    at IncomingMessage._emitData (http.js:359:10)                                            
    at HTTPParser.parserOnBody [as onBody] (http.js:123:21)                                  
    at Socket.socketOnData [as ondata] (http.js:1485:20)                                     
    at TCP.onread (net.js:404:27)   
这是我的密码:

var http = require('http');
var fs = require('fs');

var fd = fs.open('name.jpeg', 'r+');

var options = {
    host:'upload.wikimedia.org',
    port:80,
    path:'/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg'
};

var server = http.createServer(function(req, res){
    res.writeHead(200, ['Content-Type', 'text/html']);
    http.get(options,function(res) {
      res.on('data', function (chunk) {
        fs.write(fd, chunk, 0, chunk.length, 0, null);
      });
      res.on('end',function(){
        fd.end();
        res.send("<img src='name.jpeg'></img>");
        res.end();
      });
    });
});
fs.js:415                                                                                    
  binding.write(fd, buffer, offset, length, position, wrapper);                              
          ^                                                                                  
TypeError: Bad argument                                                                      
    at Object.fs.write (fs.js:415:11)                                                        
    at IncomingMessage.<anonymous> (server.js:18:12)                                         
    at IncomingMessage.EventEmitter.emit (events.js:96:17)                                   
    at IncomingMessage._emitData (http.js:359:10)                                            
    at HTTPParser.parserOnBody [as onBody] (http.js:123:21)                                  
    at Socket.socketOnData [as ondata] (http.js:1485:20)                                     
    at TCP.onread (net.js:404:27)   
var http=require('http');
var fs=需要('fs');
var fd=fs.open('name.jpeg','r+');
变量选项={
主持人:'upload.wikimedia.org',
港口:80,
路径:'/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg'
};
var server=http.createServer(函数(req,res){
res.writeHead(200,['Content-Type','text/html']);
get(选项、函数(res){
res.on('data',函数(块){
写入(fd,chunk,0,chunk.length,0,null);
});
res.on('end',function(){
fd.end();
res.send(“”);
res.end();
});
});
});
侦听(process.env.OPENSHIFT_NODEJS_端口,process.env.OPENSHIFT_NODEJS_IP)

fs.js:415                                                                                    
  binding.write(fd, buffer, offset, length, position, wrapper);                              
          ^                                                                                  
TypeError: Bad argument                                                                      
    at Object.fs.write (fs.js:415:11)                                                        
    at IncomingMessage.<anonymous> (server.js:18:12)                                         
    at IncomingMessage.EventEmitter.emit (events.js:96:17)                                   
    at IncomingMessage._emitData (http.js:359:10)                                            
    at HTTPParser.parserOnBody [as onBody] (http.js:123:21)                                  
    at Socket.socketOnData [as ondata] (http.js:1485:20)                                     
    at TCP.onread (net.js:404:27)   
我经常遇到:

fs.js:415                                                                                    
  binding.write(fd, buffer, offset, length, position, wrapper);                              
          ^                                                                                  
TypeError: Bad argument                                                                      
    at Object.fs.write (fs.js:415:11)                                                        
    at IncomingMessage.<anonymous> (server.js:18:12)                                         
    at IncomingMessage.EventEmitter.emit (events.js:96:17)                                   
    at IncomingMessage._emitData (http.js:359:10)                                            
    at HTTPParser.parserOnBody [as onBody] (http.js:123:21)                                  
    at Socket.socketOnData [as ondata] (http.js:1485:20)                                     
    at TCP.onread (net.js:404:27)   
node server.js

fs.js:415                                                                                    
  binding.write(fd, buffer, offset, length, position, wrapper);                              
          ^                                                                                  
TypeError: Bad argument                                                                      
    at Object.fs.write (fs.js:415:11)                                                        
    at IncomingMessage.<anonymous> (server.js:18:12)                                         
    at IncomingMessage.EventEmitter.emit (events.js:96:17)                                   
    at IncomingMessage._emitData (http.js:359:10)                                            
    at HTTPParser.parserOnBody [as onBody] (http.js:123:21)                                  
    at Socket.socketOnData [as ondata] (http.js:1485:20)                                     
    at TCP.onread (net.js:404:27)   
运行

fs.js:415                                                                                    
  binding.write(fd, buffer, offset, length, position, wrapper);                              
          ^                                                                                  
TypeError: Bad argument                                                                      
    at Object.fs.write (fs.js:415:11)                                                        
    at IncomingMessage.<anonymous> (server.js:18:12)                                         
    at IncomingMessage.EventEmitter.emit (events.js:96:17)                                   
    at IncomingMessage._emitData (http.js:359:10)                                            
    at HTTPParser.parserOnBody [as onBody] (http.js:123:21)                                  
    at Socket.socketOnData [as ondata] (http.js:1485:20)                                     
    at TCP.onread (net.js:404:27)   
fs.js:415
binding.write(fd、缓冲区、偏移量、长度、位置、包装器);
^                                                                                  
TypeError:参数错误
在Object.fs.write(fs.js:415:11)
在收到消息时。(server.js:18:12)
在IncomingMessage.EventEmitter.emit(events.js:96:17)
在IncomingMessage._emitData(http.js:359:10)
在HTTPParser.parserOnBody[作为onBody](http.js:123:21)
在Socket.socketOnData[as ondata](http.js:1485:20)
在TCP.onread(net.js:404:27)

工作代码-保存图像文件:

fs.js:415                                                                                    
  binding.write(fd, buffer, offset, length, position, wrapper);                              
          ^                                                                                  
TypeError: Bad argument                                                                      
    at Object.fs.write (fs.js:415:11)                                                        
    at IncomingMessage.<anonymous> (server.js:18:12)                                         
    at IncomingMessage.EventEmitter.emit (events.js:96:17)                                   
    at IncomingMessage._emitData (http.js:359:10)                                            
    at HTTPParser.parserOnBody [as onBody] (http.js:123:21)                                  
    at Socket.socketOnData [as ondata] (http.js:1485:20)                                     
    at TCP.onread (net.js:404:27)   
/**Try to get an image from Wikipedia and return it**/

var http = require('http');
var fs = require('fs');

var options = {
  host:'upload.wikimedia.org',
  port:80,
  path:'/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg'
};

var server = http.createServer(function(req, res){
  res.writeHead(200, ['Content-Type', 'text/html']);
  http.get(options,function(imgRes) {
    imgRes.pipe(fs.createWriteStream('name.jpeg'));
    res.end("<html><img src='name.jpeg'></img></html>");
  });
});

server.listen(process.env.OPENSHIFT_NODEJS_PORT, process.env.OPENSHIFT_NODEJS_IP);

嘿,Wach,谢谢你的回复,但我正在尝试学习node,不想使用外部库,还可以吗?@Chen Lee任何库都可以做,你可以手动做;)(更新答案)谢谢!但是我的图像仍然没有显示,如果您在sandbox::中看到输出,在webview中它有“不是图像吗?替换
res.writeHead(200,['Content-Type','text/html')带有
res.writeHead(200,{'Content-Type':'text/html'})维基喜欢过滤他们的图片吗?