【发布时间】:2012-12-15 15:52:04
【问题描述】:
我想将我的简约服务器从 Coffeescript 翻译成 Typescript。 这是原始代码:
express = require("express")
app=express()
app.use(express.static(__dirname))
app.set("views", __dirname + "/views")
app.set("view engine", "jade")
app.get("/", (req,res)->
res.render "index")
port = process.env.PORT or 5000
server=app.listen(port)
io=require("socket.io").listen(server)
io.sockets.on("connection", (socket)->socket.emit("news", "data"))
这是 Typescript 版本:
/// <reference path="d.ts/node.d.ts"/>
/// <reference path="d.ts/socket.io.d.ts"/>
/// <reference path="d.ts/express3.d.ts"/>
import express3 = module("express3");
var express = require("express");
var app = express();
app.use(express.static(__dirname));
app.set("views", __dirname+"/views");
app.set("view engine", "jade");
app.get("/", (req, res) => { res.render("index"); });
var port = 5000;
var server=app.listen(port);
import socketio = module("socket.io");
var io=socketio.listen(app);
io.sockets.on("connection", (socket) => { socket.emit("news", "data"); });
两个版本都编译成 server.js 没有问题。生成的代码具有不同的风格,但据我所知,语义应该是相同的。 你可以看看 pastebin 上的两个输出文件。
咖啡脚本:http://pastebin.com/38LZhcPZ
打字稿:http://pastebin.com/95ABVsB2
响应“index.jade”包含一个未完成的小型 RaphaelJs 游戏。 现在问题来了。如果我启动 coffeescript 生成的 server.js 并打开 localhost:5000,一切都很好。游戏开始运行。
但是如果我运行编译后的打字稿版本,游戏并没有开始。打开 localhost:5000 没有问题。该网站的服务没有错误,如果我检查页面源,它就在那里。起初我以为 express 的静态文件服务器可能无法正常工作。但是当我点击页面源代码中的<script src="../scripts/game.js"/> 时,代码就在那里。游戏逻辑是用window.onload启动的,可能有问题,但看起来比较奇怪。
我能做什么?
【问题讨论】:
标签: javascript node.js coffeescript express typescript