node.js有内置的base64编码吗?
为什么我问这个的原因是,final()从crypto只能输出十六进制,二进制或ASCII数据.例如:
var cipher = crypto.createCipheriv('des-ede3-cbc', encryption_key, iv);
var ciph = cipher.update(plaintext, 'utf8', 'hex');
ciph += cipher.final('hex');
var decipher = crypto.createDecipheriv('des-ede3-cbc', encryption_key, iv);
var txt = decipher.update(ciph, 'hex', 'utf8');
txt += decipher.final('utf8');
Run Code Online (Sandbox Code Playgroud)
根据文档,update()可以输出base64编码的数据.但是,final()不支持base64.我试过了,它会破裂.
如果我这样做:
var ciph = cipher.update(plaintext, 'utf8', 'base64');
ciph += cipher.final('hex');
Run Code Online (Sandbox Code Playgroud)
然后我应该用什么解密?Hex或base64?
因此,我正在寻找一个函数来对我的加密十六进制输出进行base64编码.
谢谢.
这是我的简单形式:
<form id="loginformA" action="userlogin" method="post">
<div>
<label for="email">Email: </label>
<input type="text" id="email" name="email"></input>
</div>
<input type="submit" value="Submit"></input>
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的Express.js /Node.js代码:
app.post('/userlogin', function(sReq, sRes){
var email = sReq.query.email.;
}
Run Code Online (Sandbox Code Playgroud)
我试过sReq.query.email或sReq.query['email']或sReq.params['email']等他们都没有工作.他们都回来了undefined.
当我改为Get电话时,它有效,所以..任何想法?
我通过putty SSH连接到linux服务器.我尝试将其作为后台进程运行,如下所示:
$ node server.js &
Run Code Online (Sandbox Code Playgroud)
但是,2.5小时后终端变为非活动状态并且过程终止.无论如何,即使终端断开连接,我仍然能保持活动状态吗?
编辑1
实际上,我尝试过nohup,但只要关闭Putty SSH终端或拔掉我的互联网,服务器进程就会立即停止.
在Putty有什么我需要做的吗?
编辑2(2012年2月)
永远有一个node.js模块.它将运行node.js服务器作为守护程序服务.
我想为我的MongoDB实例设置用户名和密码验证,以便任何远程访问都会要求输入用户名和密码.我尝试了MongoDB网站上的教程并做了以下事情:
use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
Run Code Online (Sandbox Code Playgroud)
在那之后,我退出并再次运行mongo.而且我不需要密码来访问它.即使我远程连接到数据库,也不会提示我输入用户名和密码.
更新这是我最终使用的解决方案
1) At the mongo command line, set the administrator:
use admin;
db.addUser('admin','123456');
2) Shutdown the server and exit
db.shutdownServer();
exit
3) Restart mongod with --auth
$ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/
4) Run mongo again in 2 ways:
i) run mongo first then login:
$ ./mongodb/bin/mongo localhost:27017
use admin
db.auth('admin','123456');
ii) run & login to mongo in command line.
$ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456
Run Code Online (Sandbox Code Playgroud)
用户名和密码将以相同的方式用于mongodump和mongoexport.
给定SSL密钥和证书,如何创建HTTPS服务?
在Node.js中,除了使用子进程进行CURL调用之外,是否有办法对远程服务器REST API 进行CURL调用并获取返回数据?
我还需要为远程REST调用设置请求标头,并在GET(或POST)中也查询字符串.
我找到了这个:http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs
但它没有显示任何POST查询字符串的方法.
之前,在较旧版本的express中,我可以这样做:
express.createServer({key:'keyFile', cert:'certFile'});
Run Code Online (Sandbox Code Playgroud)
但是,在较新版本的Express中,这不再有效:
var app = express();
Run Code Online (Sandbox Code Playgroud)
我应该打电话app.use()来设置证书吗?如果是这样的话?
我已按照这里的所有说明操作: http //www.tonyspencer.com/2003/10/22/curl-with-php-and-apache-on-windows/
安装和配置apache获取PHP5包并获取CURL包.
我运行apache并运行PHP脚本.没问题.但是当我用curl运行php脚本时,它失败了.
它返回: **Call to undefined function curl_version() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testing.php on line 5**
在哪一行5被呼叫 curl_init()
我输出php -i以查看是否调用了正确的扩展路径.它设置正确:
extension_dir => C:\PHP\ext => C:\PHP\ext
cURL support => enabled
cURL Information => libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3
Run Code Online (Sandbox Code Playgroud)
我甚至试图跑,curl_version() 但仍然出现同样的错误.
看起来PHP无法找到CURL扩展名,但是php.ini(以及php -i)显示它已设置.
任何的想法?:)
P.S> System I m running on:
Windows XP
Apache 2.2
PHP 5.2.6
CURL Win32 Generic Binaries: Win32 2000/XP metalink 7.19.0 binary SSL enabled Daniel Stenberg 249 KB
Run Code Online (Sandbox Code Playgroud)
我没有得到这个:
Win32 2000/XP 7.19.0 libcurl SSL enabled …Run Code Online (Sandbox Code Playgroud) 在我需要一个模块并执行以下操作后,请说:
var b = require('./b.js');
--- do something with b ---
Run Code Online (Sandbox Code Playgroud)
然后我想拿掉模块b(即清理缓存).我怎么能这样做?
原因是我想在不重新启动节点服务器的情况下动态加载/删除或更新模块.任何的想法?
-------更多--------基于删除require.cache的建议,它仍然不起作用...
what I did are few things:
1) delete require.cache[require.resolve('./b.js')];
2) loop for every require.cache's children and remove any child who is b.js
3) delete b
Run Code Online (Sandbox Code Playgroud)
但是,当我打电话给b时,它仍然存在!它仍然可以访问.除非我这样做:
b = {};
Run Code Online (Sandbox Code Playgroud)
不确定它是否是处理它的好方法.因为如果以后再次要求('./b.js')b.js被修改.它是否需要旧的缓存b.js(我试图删除)或新的?
-----------更多发现--------------
好.我做了更多的测试和玩代码..这是我发现的:
1) delete require.cache[] is essential. Only if it is deleted,
then the next time I load a new b.js will take effect.
2) looping through require.cache[] and delete any entry in the
children with …Run Code Online (Sandbox Code Playgroud) e.g. if i have this:
<div id='mydiv'>whatever</div>
Run Code Online (Sandbox Code Playgroud)
然后在jQuery中说,我怎么能发现id为"mydiv"的dom元素是DIV或者是其他元素类型.
e.g.
$('#mydiv').???? ?
Run Code Online (Sandbox Code Playgroud)