js将html作为普通字符输出,OpenShift node.js应用程序将所有输出以字符串形式写入HTML主体...

开发者在OpenShift上的Node.js应用中遇到问题,所有输出内容以字符串形式出现在HTML主体中,而非预期的独立响应。作者寻求可能的原因,包括框架影响和本地测试对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在OpenShift中创建了一个node.js应用程序,并且我有一个奇怪的问题,我写的所有内容()都显示在响应的主体中作为一个字符串。例如,当一个请求登录页面制作,这是出现的结果:OpenShift node.js应用程序将所有输出以字符串形式写入HTML主体

etc...

如果我检查Chrome的响应,这是它表明:

OPUND.png

正如你所看到的,我所有的输出都是作为html体内的字符串发送的。我所有的代码都可以在我的开发环境中正常工作,并且页面被正确发送和显示,这只是OpenShift。我使用的连接库,读取和写入文件,如你所期望的 - 对于上述情况,这将是代码正在运行:

var http = require('http');

var https = require('https');

var fs = require('fs');

var URL = require('url');

var mysql = require('mysql');

var cookies = require('cookies');

var request = require('request');

var bcrypt = require('bcrypt');

var connect = require('connect');

var bodyParser = require('body-parser');

// Setup Connect

var app = connect();

app.use(bodyParser.urlencoded({ extended : true }));

// Set up mysql connection

var connection = mysql.createConnection({

host : process.env.OPENSHIFT_MYSQL_DB_HOST,

user : process.env.OPENSHIFT_MYSQL_DB_USERNAME,

password : process.env.OPENSHIFT_MYSQL_DB_PASSWORD,

port : process.env.OPENSHIFT_MYSQL_DB_PORT,

});

connection.connect();

console.log("Starting server...");

// Main request handler

app.use(function (req, res) {

var url = URL.parse(req.url, true);

var pathname = url.pathname;

console.log("Request for " + pathname);

...

if(pathname === "/") {

loginForm(req, res);

}

...

}

http.createServer(app).listen(process.env.OPENSHIFT_NODEJS_PORT, process.env.OPENSHIFT_NODEJS_IP);

console.log("Server ready.");

function loginForm(req, res) {

fs.readFile('client/login.html', function(err, file) {

if(err) {

res.writeHead(500, {"Content-Type": "text/plain"});

res.write(err + "\n");

res.end();

return;

}

res.writeHead(200, {'Content-Type': 'text/plain'});

res.write(file);

res.end();

});

}

2014-09-13

Nate

+0

您是否尝试过在本地运行它?在openShift之外?这不太可能是一个openShift问题。听起来就像你正在使用一个将响应包装在默认空白HTML模板中的框架。 FWIW我有一个openShift node.js服务器,它工作正常:flitetools-slebetman.rhcloud.com –

2014-09-13 03:54:03

+0

我没有在本地运行它,但我在Cloud9(c9.io)上做了所有测试,并且它在那里运行得非常好。 –

2014-09-13 04:51:50

+0

你能展示一个简化的,最小的,完全可行的服务器代码吗?不仅仅是fs.readFile的剪辑 –

2014-09-13 04:55:10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值