2017-12-18 98 views
0

我試圖創建一個簡單的快速應用程序,但它在控制檯中運行。當我在我的瀏覽器中打localhost:3000時,我收到網絡錯誤。我似乎不知道問題是什麼。我試圖創建一個簡單的快速應用程序,但它似乎不工作

這是我的代碼。

var hostname = 'localhost'; 
var port = 3000; 

var app = express(); 

app.use (function (req, res, next) { 
    console.log (req.headers); 

    res.writeHead (200, {'Content-Type': 'text/html'}); 
    res.end ('<html><body><h1>Hello world</h1></body></html>'); 
}); 


// listing for request at port: 7000 no http.createServer needed 

app.listen (console.log (
    `Success server running at http://${hostname}: ${port}` 
)); 

但是,當我在純節點創建一個類似的應用程序,它工作正常。

這裏是我的代碼:

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

var hostname = 'localhost'; 
var port = 3000; 

var server = http.createServer (function (req, res) { 
    console.log ('request for ' + req.url + ' using ' + req.method + ' method'); 


    // checking if the request method is Get 
    if (req.method == 'GET') { 

     var fileUrl; 
     // checking for the request url if it is the home page or not and storing the correct request url in fileUrl variable 
      if (req.url == '/') fileUrl = '/index.html'; 
       else fileUrl = req.url; 
      var filePath = path.resolve ('./public'+fileUrl); 
      var fileExt = path.extname (filePath); 

      if (fileExt == '.html' && req.url !== '/favicon.ico') { 
       fs.exists (filePath, function (exists) { 
        if (!exists) { 
        res.writeHead (404, {'content-type': 'text/html'}); 
        res.end ('<h1> The file </h1>' + fileUrl + '<h1>is not found. Make sure your browser input is correct and try again!</h1>'); 
        console.log('hello no favicon found'); 
        return; 
        } 
       }); 
      } 

     res.writeHead (200, {'content-type': 'text/html'}); 
     fs.createReadStream (filePath).pipe(res); 
    } else { 
     res.writeHead (404, {'content-type': 'text/html'}); 
     res.end ('<h1> The file' + fileUrl + 'not an html file'); 
     console.log (fileUrl); 
    } 
}); 


server.listen (port, hostname, function(){ 
    console.log (`server started ${hostname}:${port}. Helloooooo`); 
}); 

感謝您的評論和響應!

+1

您將*錯誤*? - >顯示他們!而你對'app.listen'的調用完全沒有意義,你可以執行'app.listen(port,err => console.log(err))' –

+0

我檢查了你的代碼。你錯過了要求在第一部分的代碼除了一切工作正常。 – kgangadhar

回答

0

你錯過了這一行。

var express = require('express') 

添加此行代碼的頂部和嘗試,不要忘了加NPM模塊表達

1

有幾個問題在你的代碼。

您應該在您的項目中安裝express。你可以使用下面的命令來做到這一點。

npm install express --save 

然後在上面使用下面的代碼。

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

然後,您必須在listen調用中提供端口參數。

app.listen(3000); 

其他API和選項可以找到here

0

我建議你使用應用程序生成器從快速,快速和簡單,你會得到基本的工作結構。

http://expressjs.com/en/starter/generator.html

Express應用程序生成 使用應用程序生成工具,表達發電機,快速創建應用程序框架。 快速生成器包安裝快速命令行工具。使用以下命令這樣做:

$ npm install express-generator -g 

顯示-h選項的命令選項:

$ express -h 

Usage: express [options] [dir] 
Options: 
-h, --help   output usage information 
     --version  output the version number 
    -e, --ejs   add ejs engine support 
     --hbs   add handlebars engine support 
     --pug   add pug engine support 
    -H, --hogan   add hogan.js engine support 
    -v, --view <engine> add view <engine> support (ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade) 
    -c, --css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css) 
     --git   add .gitignore 
    -f, --force   force on non-empty directory 

例如,創建了名爲myApp的快速應用。該應用程序將在一個文件夾名爲MyApp被創建在當前工作目錄和視圖引擎將被設置爲帕格:

$ express --view=pug myapp 

create : myapp 
    create : myapp/package.json 
    create : myapp/app.js 
    create : myapp/public 
    create : myapp/public/javascripts 
    create : myapp/public/images 
    create : myapp/routes 
    create : myapp/routes/index.js 
    create : myapp/routes/users.js 
    create : myapp/public/stylesheets 
    create : myapp/public/stylesheets/style.css 
    create : myapp/views 
    create : myapp/views/index.pug 
    create : myapp/views/layout.pug 
    create : myapp/views/error.pug 
    create : myapp/bin 
    create : myapp/bin/www 

然後安裝依賴:

$ cd myapp 
$ npm install 

在MacOS或Linux上運行應用程序使用此命令:

$ DEBUG=myapp:* npm start 

在Windows上,使用這個命令:

> set DEBUG=myapp:* & npm start 

然後在您的瀏覽器中加載http://localhost:3000/以訪問該應用程序。 生成的應用程序具有以下目錄結構:

. 
├── app.js 
├── bin 
│ └── www 
├── package.json 
├── public 
│ ├── images 
│ ├── javascripts 
│ └── stylesheets 
│  └── style.css 
├── routes 
│ ├── index.js 
│ └── users.js 
└── views 
    ├── error.pug 
    ├── index.pug 
    └── layout.pug 
7 directories, 9 files 
The app structure created by the generator is just one of many ways to structure Express apps. Feel free to use this structure or modify it to best suit your needs. 
相關問題