3
Server.js类型错误:密钥必须在新HMAC缓冲器(crypto.js:91:16)
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// server port is 3000
let port = 3000;
// use bodyParser.json and urlencoded
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true,
}));
// use api/v1, require routes/app.js
app.use('/api/v1', require('./routes/app.js')(express));
exports.server = app.listen(port,() => {
console.log('Server active on port', port);
});
app.js
// require url shortener
const shurl = require('../modules/shurl');
module.exports = (express) => {
const router = express.Router();
router.get('/status', (req, res) => {
res.json({
healthy: true,
})
});
router.post('/urls', (req, res) => {
res.send(shurl(req, res));
});
return router;
}
shurl.js
const crypto = require('crypto');
module.exports = (url, res) => {
// set the shortened url prefix
let prefix = 'shurl.io/';
// get the url data
let hashUrl = url.body.url;
// create the hash
let hash = crypto.createHmac('sha256', hashUrl).digest('hex');
// shorten the hash length to 7
hashUrl = hash.substr(0,7);
// create the shortened url
let shortened = prefix + hashUrl;
// send the shortened url
res.json({shortUrl: shortUrl});
}
错误:
TypeError: Key must be a buffer at new Hmac (crypto.js:91:16) at Object.Hmac (crypto.js:89:12) at module.exports (C:\xampp\htdocs\url-shortener\src\modules\shurl.js:16:21) at router.post (C:\xampp\htdocs\url-shortener\src\routes\app.js:21:16) at Layer.handle [as handle_request] (C:\xampp\htdocs\url-shortener\node_modules\express\lib\router\layer.js:95:5) at next (C:\xampp\htdocs\url-shortener\node_modules\express\lib\router\route.js:131:13) at Route.dispatch (C:\xampp\htdocs\url-shortener\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\xampp\htdocs\url-shortener\node_modules\express\lib\router\layer.js:95:5) at C:\xampp\htdocs\url-shortener\node_modules\express\lib\router\index.js:277:22 at Function.process_params (C:\xampp\htdocs\url-shortener\node_modules\express\lib\router\index.js:330:12)
到底是什么造成这个错误,没有人知道的修复?我得到这个错误,当我尝试发布创建一个缩短的URL @ 127.0.0.1:3000/api/v1/urls
好奇,想知道是否 问题已经解决了。 我处于类似的情况 – visrey