试图响应从node.js http服务器中分割成单词数组的文本
Trying to respond with text split into array of words from node.js http server
node.js新手,感谢您提供的所有帮助。试图响应变量"单词",但当我启动服务器并转到本地主机时,它崩溃并说"TypeError:第一个参数必须是字符串或缓冲区",但当我尝试将相同的变量写入控制台时,它会起作用。谢谢你的帮助!
var http = require("http");
var fs = require('fs');
var text = fs.readFileSync("text.txt").toString();
var words = text.split(/'b/);
function start(){
function onRequest(request, response){
response.writeHead(200, {"Content-type": "text/plain"});
var wordCounts = '';
for(var i = 0; i < words.length; i++)
wordCounts["_" + words[i]] = (wordCounts["_" + words[i]] || 0) + 1;
response.write(words);
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("server has started");
}
exports.start = start;
我想这样做:
…
var words = text.split(/'s+/); // you hardly want to split on every word boundary
// but rather on the spaces in between
…
var wordCounts = {}; // an object, not a string!
for (var i = 0; i < words.length; i++)
wordCounts["_" + words[i]] = (wordCounts["_" + words[i]] || 0) + 1;
var result = Object.keys(wordCounts).sort(function(a, b) {
return wordCounts[b]-wordCounts[a];
}).map(function(w) {
return w.slice(1)+": "+wordCounts[w];
}).join("'n");
response.write(result); // write a string!
…
控制台对此没有问题,因为它会自动将您放入console.log()
的大多数内容字符串化。试试这个:response.write(JSON.stringify(words))
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 拆分单词jquery
- 如何让程序检查所选单词中是否有按键
- 如何在悬停时流畅地更改单词
- EmberJS中支持单字母单词模型
- 字母计数:返回重复字母数最多的第一个单词
- 如何在Javascript中从字符串中提取某些单词
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 在javascript中查找单词
- 使用jQuery检查提交时添加到句子中的单词
- 如何在PHP中获取特定的字符串单词
- JS/Jquery:字符串到单词的文本分割脚本使用字典和最长匹配
- JS:将长字符串分割成具有char限制的字符串,同时避免分割单词
- 试图响应从node.js http服务器中分割成单词数组的文本
- 从以某个字符开头的文本中分割单词
- 使用正则表达式按单词或操作符分割
- 如何像HTML中的单词一样分割十进制数?
- 除包含散列的特定单词外,逗号内的分割字符串