2017-08-27 69 views
0

你好我是NodejS的新手,仍然在学习,所以我可能会犯错误,我正在通过编写代码来学习它,而我从java背景学习。 Asyc的功能对我来说仍然是新的。如何在MySQL中使用Nodejs自动设置user_id?

这里是我的问题

我想USER_ID分配给从我的代码每个用户。

.post('/register', function (req, res, next) { 
    var username = req.body.uname; 
    var password = req.body.psw; 
    var email = req.body.uemail; 
    var fullname = req.body.fullname; 
    var user_id = sql_counts.sql_count()+1; 
    console.log('Your user id is'+user_id); 
    sql_connection.User.create({ 
     username:username, 
     password:password, 
     email:email, 
     user_id:user_id 
    },function (err) { 
     if(!err){ 
      console.log('Successful'); 
      res.redirect('/registrationComplete'); 
     }else{ 
      console.log('Error creating'); 
     } 
    }); 
}); 

这里是我的sql_count功能:

function sql_count() { 
    sql_connection.User.count().then(function (err) { 
     initCounter =err; 
    }); 
    return initCounter; 
}; 

我想更多地了解电话的背上,因为这是非常新的,混乱给我。任何人都可以提供一些材料,链接,视频......虽然它似乎是在开始时的理解,但我只是不明白它,当我尝试使用它。还有如何将值从回调函数返回给外部函数?

在上面的代码给我如何从“然后”部分外功能sql_count返回值()?

+0

你应该定义'user_id'列为'autoincrement',这样每个插入MySQL将生成新的id。 CREATE TABLE users ( user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ); – felixmosh

+0

为了解承诺与回调,看看这篇文章:[不是承诺只是回调?](https://stackoverflow.com/a/22540276/5395709)。干杯! – mscheker

回答

0

使用MYSQLAUTO_INCREMENT功能创建为每个新用户的新USER_ID(即每一个新行),同时插入如下

CREATE TABLE USERS(user_id INT NOT NULL AUTO_INCREMENT);

欢呼

回调和承诺结帐this video以及最新的等待/异步功能this video

0

你可以在你的mysql表中使用自动增量列,它会自动增加或使用随机函数生成id。我会建议你第一个

相关问题