簡體   English   中英

帶有HTML的javascript node.js服務器

[英]javascript node.js Server with html

我的Node.js服務器有問題。 我想托管一個html文檔,但是TypeError有一個問題。 我找不到錯誤。 你能幫助我嗎?

var express   =    require("express");
var mysql     =    require('mysql');
var app       =    express();
var fs          = require("fs");

var pool      =    mysql.createPool({
    connectionLimit : 100, //important
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : 'test',
    debug    :  false
});

app.get('/', function(req, res) {
    fs.readFile('index.html', 'utf-8',function (err, data){
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write(data);
        res.end();
    });
});

app.listen(3000);
console.log("SERVER IS NOW RUNNING AT PORT 3000........");

現在在這里的日志:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.2\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" Server.js
SERVER IS NOW RUNNING AT PORT 3000........
_http_outgoing.js:430
    throw new TypeError('first argument must be a string or Buffer');
    ^

TypeError: first argument must be a string or Buffer
    at ServerResponse.OutgoingMessage.write (_http_outgoing.js:430:11)
    at ReadFileContext.callback (c:\........\Server.js:21:13)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:303:13)

稍后,我想與池建立MySQL連接。

您還可以使用createReadStream.piperes但@robertklep提到的,你應該檢查if (err)內部readFile回調。

這是例子

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

var file = fs.createReadStream('/path/to/file');

var server = http.createServer(function (req, res) {
    // res.writeHead(200, {
    //     'content-type': 'text/plain'
    // });

    file.pipe(res);
});

server.listen('3000');

更新

因此,要使用express匹配代碼,您無需做太多事情:

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

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

app.listen(3000, function () {
    console.log('SERVER IS NOW RUNNING AT PORT 3000........');
});

只需將所有資產都放在公用文件夾中,就可以了。 要查找有關Express的更多信息,請訪問http://expressjs.com/en/4x/api.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM