我的用户注册
const express = require ('express');
const userRouter = express.Router ();
userRouter.get ('/', function getUserList (req, res) {
let User = require ('../models').User;
User.find ({}, function (err, list) {
res.json (list);
});
});
userRouter.post ('/', function createUser (req, res) {
let User = require ('../models').User;
if (req.body.username && req.body.password)
User.create (req.body, function (err, user) {
res.json (user);
});
});
... 3 more functions with the same `let User` ...
module.exports = userRouter;
在这里,我必须require
模块模型两次。我尝试将User变量设置为程序顶部的全局变量,如
const express = ..., userRouter = ...
var User = ...
但是我的回调函数仍无法访问此User变量。
要求用户模块多次以正确的方式执行此操作,还是我遗漏了某些内容?
编辑:在回调函数中,User变量未定义。
答案 0 :(得分:1)
正如@Doug所提到的,您应该将spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.security.oauth2.resource.filter-order=3
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.hbm2ddl.auto = update
spring.jpa.properties.hibernate.show_sql=true
传递给用户变量,如下所示:
global
此过程实质上将global.user = ...
转换为全局可访问的变量。您可以在此处详细了解Node的user
,了解它的作用以及了解其含义:http://stackabuse.com/using-global-variables-in-node-js/
答案 1 :(得分:1)
@charloetfl指出,如果它只是在文件中,在回调之外或在文件顶部声明它应该这样做。如果我们讨论的是跨项目中的所有模块和文件的访问,那么将它添加到全局对象是在节点中进行的方式,如@doug和@andrewl所述。