① 如何从字符串中的Node.js创建流
1. 刚创建的一个新实例stream模块,并根据您的需求定制它:
var Stream = require('stream')
var stream = new Stream()
stream.pipe = function(dest) {
dest.write('your string')
}
stream.pipe(process.stdout) // in this case the terminal, change to ya-csv
或
var Stream = require('stream')
var stream = new Stream()
stream.on('data', function(data) {
process.stdout.write(data) // change process.stdout to ya-csv
})
stream.emit('data', 'this is my string')
2. 将字符串转换为流,通过一个流:
through().pause().queue('your string').end()
例如:
var through = require('through')
// Create a paused stream and buffer some data into it:
var stream = through().pause().queue('your string').end()
// Pass stream around:
callback(null, stream)
// Now that a consumer has attached, don't forget to resume the stream:
stream.resume()
更新:@substack刚刚发布的模块。这就像一个通过()流,但自上nextTick流,当且仅当别人有它在
var resumer = require('resumer')
var stream = resumer().queue('your string').end()
// Now pass `stream` around. No need to resume, it happens automatically.
该resumer().queue('some string').end()idioms是我现在创建adhoc流。这是方便多了,你可以return流,他们还是会得到
3. JavaScript是鸭子类型的 CodeGo.net,所以如果你只是复制一个可读的流的API,它会工作得很好。事实上,你也许可以不是大多数的或刚刚离开他们作为存根,所有你需要的是什么样的你节点的预建EventEmitter类来处理事件,也让你不必addListener和这样的自己。 这里是你如何可能它的CoffeeScript:
class StringStream extends require('events').EventEmitter
constructor: (@string) -> super()
readable: true
writable: false
setEncoding: -> throw 'not implemented'
pause: -> # nothing to do
resume: -> # nothing to do
destroy: -> # nothing to do
pipe: -> throw 'not implemented'
send: ->
@emit 'data', @string
@emit 'end'
那么你也喜欢这样:
stream = new StringStream someString
doSomethingWith stream
stream.send()
② 求问nodejs有什么方法能够获取到子网掩码
用csharp 锚点符号后面的内容不会回传到服务器,这个是标准约定,浏览器都是这么实现的和node.js没有关系 其它语言也获取不到
③ 怎么使用node.js进行快速截图
使用nodejs进行截图复,推荐使用phantomjs实现。制phantomjs是一个无头浏览器,能够实现截屏,网络请求监测,自动化测试等功能。具体所有例子可以在phantomjs官网找到,下面给一个官网截屏的实例:
//index.js
varpage=require('webpage').create();
page.open('
,function(){
page.render('github.png');
phantom.exit();
});
//命令行调用
phantomjsindex.js
通常也会用casperjs(webkit)来实现截图,它有更好用的api封装方便实现各种操作。在Gecko内核下则使用slimerjs实现。
不过google官方团队也出了针对chrome的无头浏览器工具puppeteer,现在版本是0.9.0,这款工具是单独针对Chrome浏览实现的,提供了强大但是简单实用的api。
以上关键词 phantomjs、casperjs、slimerjs及puppeteer均可在gitHub上找到,且可以自行下载包查看示例。
④ node.js与jquery有什么区别我很了解jquery,但是node.js就不太懂了
jquery是一个运行在客户端的javascript库,主要提供操作DOM等等的简化操作;
node.js是运行在服务器端的一个服专务器程序,运属行javascript语言,是一个服务器软件,解释执行js语言。可以用js语言操作服务器层面的事务,比如创建http链接,信息的I/O。这些是和jquery一样用的js语言进行操作执行的。
就是说node.js是一个利用js语言的服务器程序,可以运行jquery,但是其中的一些事件是用不到的;
jquery是一个js库,主要是处理客户端事务。
⑤ nodejs网络爬虫怎么过滤关键字
启动terminal,运行"python /Cocos/Cocos2d-x-3.0beta2/tools/project-creator/create_project.py"。把工程命名为MaskedCal,然后选择一个文件夹来保存,最后点Create。
接下来,请下载本工专程所需要的资源属文件并把它们拖到你的Xcode的Resource分组中,确保“Copy items into destination group’s folder (if needed)” 并复选中,然后点Finish。
⑥ node.js在前端中有什么作用
可以不通过后台语言,前端也可以实现后台语言实现的效果和内容
⑦ Nodejs有没有过滤器模块
Node.js逐渐升温,很多朋友已经开始关注。但是在Windows平台上需要基于Cygwin安装配置环境,让很多人望而却步。
不过有消息称Microsoft已经联系Node.js官方,相信很快会有改善。
那么在不安装Cygwin的情况下,是否可以在Windows上搭建Node.js环境进行试验开发哪看我以Node.js + express做了个简单测试,基本可行。
步骤如下:
1. 下载Node.js官方非稳定版Windows可执行程序:
我在试验中使用了0.5.7版本
2. 创建c:\nodejs目录,并将node.exe保存在此目录中
3. 下载express。因为依赖关系,我们还需要下载:connect、qs、mime和jade(express默认模板系统。如果你使用其他模板系统,需要下载相应系统)
4. 创建c:\nodejs\node_moles目录,并在此目录中分别创建[Mole]目录。然后将上一步下载的文件压缩,把相关文件拷贝到[Mole]目录中。
node_moles
|- connect <= connect: lib/*
|- express <= express: lib/*
|- jade <= jade: lib/*
|- mime <= mime: mime.js & types/*
|- qs <= qs: lib/*
5. 在c:\nodejs\node_moles目录,分别创建以下文件:
connect.js
内容:mole.exports = require('./connect/connect');
express.js
内容:mole.exports = require('./express/express');
jade.js
内容:mole.exports = require('./jade/jade');
mime.js
内容:mole.exports = require('./mime/mime');
qs.js
内容:mole.exports = require('./qs/querystring');
6. 将下载的express压缩包中的bin/express文件拷贝到c:\nodejs目录,并改名为express.js
7. 修改express.js文件,以下以2.4.3为例:
7.1. 修改mkdir函数体
401: exec('mkdir -p ' + path, function(err){
->exec('md ' + path, function(err){
7.2. 修改mkdir函数调用
263: mkdir(path + '/public/javascripts');
->mkdir(path + '\\public\\javascripts');
264: mkdir(path + '/public/images');
->mkdir(path + '\\public\\images');
265: mkdir(path + '/public/stylesheets', function(){
->mkdir(path + '\\public\\stylesheets', function(){
280: mkdir(path + '/views', function(){
->mkdir(path + '\\views', function(){
8. 创建一个express项目:
c:\nodejs\node.exe express.js -s hello
9. c:\nodejs\node_moles\*.* => c:\nodejs\hello\node_moles\
10. 运行并测试:
c:\nodejs\node.exe hello\app.js
在浏览器中打开:,查看结果。
至此测试完成。
下面给出测试文件,在测试文件中我还试验了express session。可以在浏览器中打开:/session,查看结果。
⑧ node.js怎么去除字符串空格
方法:通常去复除字符制串空格之类的问题通过正则来实现还是比较常见的。
实现代码:
vart=function(str){
'定义正则左侧空格
vartrimLeft=/^s+/,
'定义正则右侧空格
trimRight=/s+$/;
'替换左边和右边的空格
str.replace(trimLeft,"").replace(trimRight,"");
};
定义和用法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
⑨ node.js怎么过滤静态资源
将对象转换成字符串,字符串里多个参数将用 ‘&' 分隔,将用 ‘=' 赋值。 这个函数的操作和 querystring.parse() 是相反的,具体可以看一下例子就了解了。
⑩ 使用node.js,实现一个简单的接口服务器的功能
varhttp=require('http');
varmysql=require('mysql');
varconnection=mysql.createConnection({
host:'localhost',
user:'me',
password:'secret',
});
//开始你的mysql连接
connection.connect();
varserver=http.createServer(function(req,res){
//如果你发一个GET到http://127.0.0.1:1337/test?a=1&b=2的话
varurl_info=require('url').parse(req.url,true);
//检查是不是给/test的request
if(url_info.pathname==='/test'){
//把query用urlencode,这样可以用post发送
varpost_data=require('querystring').stringify(url_info.query);
//post的option
varpost_options={
host:'localhost',
port:1337,
path:'/response_logic',
method:'POST',
headers:{
'Content-Type':'application/x-www-form-urlencoded',
'Content-Length':post_data.length
}
};
//发出post
varrequest_made=http.request(post_options,function(response_received){
varbuf_list=newArray();
response_received.on('data',function(data){
buf_list.push(data);
});
response_received.on('end',function(){
varresponse_body=Buffer.concat(buf_list);
res.end(response_body);
connection.query('insertinto.........',function(err,rows,fields){
//处理你的结果
});
});
});
//发出post的data
request_made.end(post_data);
}
//这个是用来回复上面那个post的,显示post的数据以表示成功了。你要是有别的目标,自然不需要这一段。
else{
req.pipe(res);
}
});
server.listen(1337,'127.0.0.1');
//在server关闭的时候也关闭mysql连接
server.on('close',function(){
connection.end();
});
console.log('listeningonport1337');