asynchronous未定义 – 节点js

我试图得到nodejs的async工作,但我得到以下错误:

ReferenceError:async没有在D:\ project \ routes \ index.js中定义:58:2在Layer.handle [作为handle_request](D:\ project \ node_modules \ express \ lib \ router \ layer.js:82:5 (D:\ project \ node_modules \ express \ lib \ router \ route.js:110:13)在Route.dispatch )在D:\ project \ node_modules \ express \ lib \ router \ index.js中的Layer.handle [作为handle_request](D:\ project \ node_modules \ express \ lib \ router \ layer.js:82:5):267 (D:\ project \ node_modules \ express \ lib \ router \ index.js)下的Function.proto.process_params(D:\ project \ node_modules \ express \ lib \ router \ index.js:321:12)在路由器(D:\ project \ node_modules \ express \ lib \ router \ index)中的Function.proto.handle(D:\ project \ node_modules \ express \ lib \ router \ index.js:166:3) JS:35:12)

在我添加的server.js文件中: var async = require('async'); 代码是我使用async.series:

 /* POST to Add User Service */ router.post('/register', function(req, res) { var error = false; var errors = []; // Set our internal DB variable var db = req.db; // Get our form values. These rely on the "name" attributes var user_email = req.body.useremail; var user_password = req.body.userpassword; var user_repeat_password = req.body.repeatpassword; var encrypted_password; var ip; async.series([ function(callback){ // Check if entered passwords matches if(user_password !== user_repeat_password){ error = true; errors.push('Password does not match'); } if(user_password.length < 6){ error = true; errors.push('Password to short, must be minimal 6 characters long'); } callback(); }, function(callback){ // Encrypt password var salt = "test"; var salt2 = "test2"; encrypted_password = SHA512(SHA512(SHA512(salt.concat(user_password,salt2)))); // Get IP ip = req.ip; if(ip==""){ error = true; errors.push('No IP found?'); } // Validate email function validateEmail(user_email) { var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([az]{2,6}(?:\.[az]{2})?)$/i; return re.test(user_email); } if (!validateEmail(user_email)) { error = true; errors.push('Unvalid email'); } else{ // Check if email already exists var collection = db.get('users'); collection.find({'email':user_email}, function(err, items){ if(items == ""){ console.log('Email available'); } else{ error = true; errors.push('Email already in use'); console.log('Email UNavailable'); } }, function (err, doc) { // If it failed, return error res.send("An error occurred while processing the data, please contact the site administrator."); }); } callback(); } ], function(err){ console.log(error); // Check if errors if(error == true){ console.log('error = true'); errors.push("<a href='/register'>Try Again</a>"); var error_string = errors.join("<br>"); res.send(error_string); } else{ console.log('error = false'); // Set our collection var collection = db.get('users'); // Submit to the DB collection.insert({ "email" : user_email, "password" : encrypted_password, "status" : false, "ip" : ip }, function (err, doc) { if (err) { // If it failed, return error res.send("An error occurred while processing the data, please contact the site administrator."); } else { // If it worked, set the header so the address bar doesn't still say /adduser res.location("userlist"); // And forward to success page res.redirect("userlist"); } }); } }); }); 

       

网上收集的解决方案 "asynchronous未定义 – 节点js"