-2

使用 heroku 和 node.js 启动一个简单的应用程序。我想显示在文本框中输入的文本,但执行此操作的功能似乎从未输入。当我检查未定义 addString() 的元素时,会出现参考错误。我在这里错过了什么吗?

编辑:将服务器端和客户端放在单独的文件中:

var express = require("express");
var app = express();
app.use(express.logger());

var fs = require('fs');

var script = fs.readFileSync('./feed.js');
app.get('/feed.js', function(req, res) {
  res.type('text/javascript');
  res.send(script);
});

var html = "";


html += "<body>";
html += "<div> Tweet!";

html += "<input type= 'text' name = 'name' id = 'name_id'/>";

html += "<button type='button' id='submit' onclick='addString()'>Tweet</button>";
html += "</div>";

html += "</body>";

app.get('/', function(request, response) {
  response.send(html);
});

var port = process.env.PORT || 5000;
app.listen(port, function() {
  console.log("Listening on " + port);
});

和 feed.js:

var input = [];

function addString() {
    console.log("got here");
    alert("got here");
    var s = document.getElementById("name_id").value;//x.name.value;
    input.push(s);
    var size = s.length;
    //alert(size);
    printArray(size);
}

function printArray(size){
    var div = document.createElement('div');
    for (var i = 0 ; i < size; ++i) {
        div.innerHTML += input[i] + "<br />";
    }
    document.body.appendChild(div);
    //alert(size);
}

似乎仍然没有进入 feed.js 功能

4

1 回答 1

0

addString()是您在服务器代码中定义的函数;您没有将它与 HTML 一起发送给客户端。使用您最喜欢的浏览器调试工具查看您从服务器获取的代码。

于 2013-09-16T18:14:20.733 回答