1:关于模块crypto;
我在使用crypto.cpmpare(源码在下面),忘记了些第二个参数,导致老是出现'data and hash must be strings',
找了好长一些时间,最后通过看源码,发现是第二个参数没写;
1 /// compare raw data to hash 2 /// @param {String} data the data to hash and compare 3 /// @param {String} hash expected hash 4 /// @param {Function} cb callback(err, matched) - matched is true if hashed data matches hash 5 module.exports.compare = function(data, hash, cb) { 6 if (data == null || data == undefined || hash == null || hash == undefined) { 7 throw new Error('data and hash arguments required'); 8 } else if (typeof data !== 'string' || typeof hash !== 'string') { 9 throw new Error('data and hash must be strings'); 10 } 11 12 if (!cb) { 13 throw new Error('callback required for async compare'); 14 } else if (typeof cb !== 'function') { 15 throw new Error('callback must be a function'); 16 } 17 18 return bindings.compare(data, hash, cb); 19 };
2:关于模块body-parser;
之前这个功能是作为express的中间件用得,如下:
app.use(express.bodyParser())
//现在已经没有和express绑定了,直接作为node的一个模块使用:
var bodyParser = require('body-parser')
如果不用这个,在req.body时根本找到不到数据。