2

我已经使用 Cloud9 IDE 创建了 node.js 项目,用于开发将服务于登录页面 (form.html) 的身份验证模块。我使用 mongo db 作为数据库。我还将 express 库用于路由机制。

请找到如下所述的代码详细信息:

app.js:-

/**
 * Module dependencies.
 */

var express = require('express')
  , routes = require('./routes')
  ,fs = require('fs');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

// Routes

app.get('/', routes.index);

app.get('/form',function(req,res){
   fs.readFile('.form.html',function(error,content){
       if (error) {
           res.writeHead(500);
           res.end();
       }
       else{
         res.writeHead(200,{'Content-Type':'text/html'});
         res.end(content,'utf-8');
       }
   }); 
});


app.listen(process.env.PORT);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);

包.json:-

{
    "name": "authentication"
  , "version": "0.0.1"
  , "private": true
  , "dependencies": {
      "express": "2.5.8"
      , "jade": "0.26.1"
      ,"mongoose":"2.6.5"
  }
}

form.html:-

<form action="/signup" method="post">
<div>
    <label>Username:</label>
    <input type="text" name="username"/><br/>
</div>
<div>
     <label>Password:</label>
    <input type="password" name="password"/><br/>
</div>
<div><input type="submit" value="Sign Up"/></div>
</form>

上面的 form.html 是在 authentication 文件夹中创建的。

对于快速实现,我使用了以下命令:

npm install -g @express2.5.8

快速认证

然后如上所述更新了 package.json 文件并运行以下命令:

光盘认证

npm 安装

节点应用

编写完上面提到的所有命令后,我无法看到 form.html 作为输出。

谁能帮我提供一些解决方案,以便将 form.html 页面作为应用程序的输出。

谢谢和问候, 桑托什·库马尔·帕特罗

4

2 回答 2

1

由于您使用的是express.static中间件,因此只需将其form.html放在/public目录中(或 simlink 即可)。节省大量时间。

表格将在host:port/form.html.

于 2013-01-28T21:36:02.677 回答
0
fs.readFile('.form.html' 

需要是

fs.readFile('form.html' 

删除前导点!

您在 app.listen() 中使用的“process.env.PORT”的值是多少?在下面的示例中,我使用了 8080

将浏览器指向 localhost:8080/form

于 2013-01-28T21:08:16.317 回答