如何在nodejs中发送文件,我正在创建一个页面应用程序,所以我只想要第一次请求abcd.html页面,这是我的代码
app.js
var express = require('express'),
app = express(),
http = require('http'),
path = require('path'),
fs = require('fs'),
mysql = require('mysql'),
server = http.createServer(app),
passport = require('passport'),
flash = require('connect-flash'),
useragent = require('express-useragent'),
io = require('socket.io').listen(server);
// configuration ===============================================================
// connect to our database
require('./config/passport')(passport); // pass passport for configuration
app.use(express.static(path.join(__dirname, 'public')));
app.use(app.router);
app.configure(function() {
app.set('views', path.join(__dirname, 'app/views'));
app.set('view engine', 'ejs'); // set up ejs for templating
// required for passport
app.use(express.session({secret: 'vidyapathaisalwaysrunning',key: 'myuser.sid',cookie: { secure: false,maxAge:null}} )); // session secret1
//app.use(express.session({secret: 'vidyapathaisalwaysrunning', key: 'myownsid', cookie: { secure: false, maxAge: 3600000 }} )); // session with expitation
//app.use(express.session({ key: 'express.sid', secret: 'vidyapathaisalwaysrunning' } )); // 2 cookieId ie connect.sid & express.sid(user defined) session secret1
//app.use(express.session({ store: sessionStore, secret: 'vidyapathaisalwaysrunning',cookie: {httpOnly: false},key: 'cookie.sid' } )); // session secret
// set up our express application
app.use(express.logger('dev')); // log every request to the console
app.use(express.cookieParser()); // read cookies (needed for auth)
app.use(express.bodyParser()); // get information from html forms
app.use(useragent.express());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session
app.use(express.static(path.join(__dirname, 'public')));
});
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
//routes ======================================================================
require('./app/controller.js')(app, passport,io); // load our routes and pass in our app and fully configured passport
//require('./app/socket')(app,io);
// launch ======================================================================
server.listen(8080);
回复页面
case '/':
/*response.writeHead(200, {'Content-Type': 'text/html'});
response.write('hello world');*/
//response.json({ message: 'hello' });
response.sendfile("../public/abcd.html");
break;
它总是给出发送后无法设置 Headers ,这是控制台输出
错误:在SendStream.pipe(/ home / pitu / / Sendbream.pipe)上发送禁止使用SendStream.error(/home/pitu/CODING/NODE-PROJECTS/chichat/node_modules/express/node_modules/send/lib/send.js:145:16) ServerDesponse.res.sendfile上的CODING / NODE-PROJECTS / chichat / node_modules / express / node_modules / send / lib / send.js:307:39)(/ home / pitu / CODING / NODE-PROJECTS / chichat / node_modules / express / lib / response.js:339:8)在/home/pitu/CODING/NODE-PROJECTS/chichat/app/controller.js:18:21回调(/ home / pitu / CODING / NODE-PROJECTS / chichat / node_modules) /express/lib/router/index.js:161:37)在param(/home/pitu/CODING/NODE-PROJECTS/chichat/node_modules/express/lib/router/index.js:135:11)通过( /home/pitu/CODING/NODE-PROJECTS/chichat/node_modules/express/lib/router/index.js:142:5)在Router._dispatch(/ home / pitu / CODING / NODE-PROJECTS / chichat / node_modules / express) /lib/router/index.js:170:5)在Object.router(/home/pitu/CODING/NODE-PROJECTS/chichat/node_modules/express/lib/router/index.js:33:10)下一步( /家庭/脾土/编码/节点的项目/时尚hat / node_modules / express / node_modules / connect / lib / proto.js:190:15)_http_outgoing.js:331抛出新错误('不能在发送后设置 Headers . '); ^错误:发送后无法设置标头 . ServerResponse.res.setHeader上的ServerResponse.OutgoingMessage.setHeader(_http_outgoing.js:331:11)(/home/pitu/CODING/NODE-PROJECTS/chichat/node_modules/express/node_modules/connect/lib/patch.js:59) :22)在/home/pitu/CODING/NODE-PROJECTS/chichat/node_modules/express/node_modules/connect/lib/middleware/errorHandler.js:63:17 at fs.js:292:14 at Object.oncomplete(fs)的.js:93:15)
参考截图
做什么
1 回答