在NodeJS中显示HTML

时间:2014-09-17 18:43:09

标签: javascript html css node.js

我需要在`items` .img`

中显示<img src="http://my.pic/test/rg/pict.png" />

但是res.write(rows[0].img, 'utf8');

我在浏览器中看到:

<img style="display: none !important;" src="http://my.pic/test/rg/pict.png" />

如何修复style="display: none !important;"

 express = require('express'), app = express();
 var mysql = require('mysql');

 app.listen(8080);

 mysql.connect = function(req, res, next){
    var connect = mysql.createConnection({
    host     : 'localhost',
    user     : 'person',
    password : 'ppasw',
    database : 'db1'
    });

  return connect;
 }

server.get(new RegExp('/img'), function(req, res, next){
var db =mysql.connect(); 

 db.connect();
 db.query("use `bd1`");
 db.query("SELECT `img` FROM `items` WHERE `id`='" +    intval(req.query.id) + "'",   

   function (err, rows, fields) {

     res.setHeader("Content-Type", "text/html");
     res.write(rows[0].img, 'utf8');
     res.end();

   });
      db.end();
});

- - - - * 我发现问题 - Adblock插件。

2 个答案:

答案 0 :(得分:1)

您可以在res.write部分之前添加此调试代码吗?

console.log(rows[0].img)

我最好的猜测是样式属性已经存在于数据库中。

我的第二个最佳猜测是,您的浏览器中可能会运行一些javascript来隐藏损坏的图像。

答案 1 :(得分:0)

根据数据库中的信息,您可能必须构造HTML。如果您只是将URL放在那里的图像中,那么它就无法正常工作。您可能需要执行以下操作:

res.write('<html><body><img src="' + rows[0].img + '" /></body></html>');

如果数据库已经存储了所有HTML(我建议不要这样做)并且你没有隐藏损坏图像的任何扩展,那么你将不得不使用一些客户端Javascript来取消隐藏图像。 / p>