Node.js:节点方法有变化吗?

时间:2013-09-21 23:21:52

标签: javascript node.js

我的代码不能很好地工作。我刚开始使用第一行代码并安装软件包。这是代码:

server.coffee

require 'coffee-script'
express = require 'express'

app = express()

app.get '/', (req, res) ->
  res.send "Hello from express"

app.listen(3000)
console.log "Server is listening"

index.eco

<!DOCTYPE html>
  <html lang="end">
<head>
    <title>Our Page</title>
    <body>
        <h1>Our Index</h1>
    </body>
</head>
</html>

首先,我必须说express.createServer()已更改为express(),但当我尝试更改代码时

res.send "Hello from express"

res.render 'index.eco', layout: false

运行服务器后无效。有什么想法吗?

的package.json

{
  "name": "coderacer",
  "version": "0.0.0",
  "description": "Example",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Ro",
  "license": "BSD-2-Clause",
  "dependencies": {
    "coffee-script": "*",
    "express": "*",
    "eco": "*"
  }
}

1 个答案:

答案 0 :(得分:0)

您没有告诉Express使用模板引擎。要使用Eco等模板引擎,您还需要安装Consolidate.js。 Consolidate.js是一个库适配器,允许除EJS和Jade之外的其他模板引擎与Express一起使用。

这就是你使用这些库的方式:

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

app.engine('eco', cons.eco);
app.get('/', function(req, res) {
  res.render(__dirname + '/template.eco', {
    layout: false
  });
});

Consolidate.js将自动使用Eco上的require()处理,因此这是您需要初始化以使用Eco的唯一库。如果您需要CoffeeScript版本:

express = require("express")
app = express()
cons = require("consolidate")

app.engine "eco", cons.eco
app.get "/", (req, res) ->
  res.render __dirname + "/template.eco", layout: false