Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点识别一次_Javascript_Node.js - Fatal编程技术网

Javascript 节点识别一次

Javascript 节点识别一次,javascript,node.js,Javascript,Node.js,我想这样一次 ├── 项目文件夹 |├── app.js//主文件 |└── 路由器/index.js app.js index.js 错误:未定义mysql 我不想再次识别mysql和其他变量。 我怎样才能解决这个问题 谢谢你的帮助 解决了的 创建一个settings.js 在文件中定义设置 例子 在你想要的文件中 需要('./设置') 使用:settings.test您需要导入所需的模块: index.js const mysql = require('mysql'); const con

我想这样一次

├── 项目文件夹

|├── app.js//主文件

|└── 路由器/index.js

app.js index.js 错误:未定义mysql 我不想再次识别mysql和其他变量。 我怎样才能解决这个问题

谢谢你的帮助

解决了的 创建一个settings.js 在文件中定义设置

例子 在你想要的文件中 需要('./设置')


使用:settings.test您需要导入所需的模块:

index.js

const mysql = require('mysql');

const connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'root',
    database : 'wordpress'
});

connection.connect(function(err) {
    if (err) {
        console.log(err); 
    }  
});

您只需要在index.js文件中要求('mysql')
在你的app.js文件中,由于你已经导入了这个文件(index.js),一旦你在app.js文件中需要这个文件,就会立即执行它

因此,您不需要在app.js文件中require('mysql'),因为这是NODE的工作方式(模块化代码)。

它必须在您使用mysql的每个文件中都是必需的

const mysql = require('mysql');

    const connection =

 mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : 'root',
        database : 'wordpress'
    });

    connection.connect(function(err) {
        if (err) {
            console.log(err); 
        }  
    });
如果在此index.js文件中创建了其他模块所需的任何函数,则可以module.exports导出它们

编辑:


有关模块的详细说明,请参阅此链接:

正如其他答案所指出的,当您想在文件中访问模块时,应使用“require()”导入模块

如果您询问如何在不初始化每个文件中的db连接的情况下初始化db连接,则可以为db连接创建模块


查看Dave关于这个主题的答案

节点是模块化的,所以您不应该真的以这种方式创建全局。通常,您创建导出某些内容的模块,并在需要的任何位置导入该模块。只需在您需要的任何文件中
require('mysql')
。相信我,这样做会更好,使代码更加模块化,也是Node的工作方式。生成全局变量是一个很大的反模式。我不太明白,我应该怎么做do@MustafaKÜÜÜK在
index.js
put
const mysql=require('mysql')
中,就像你在
app.js
中所做的那样。你在index.js中使用mysql而不需要它。我必须在每个文件上都使用它吗?@MustafaKÜÜÜK不,仅在您正在使用mysql的文件中,在每个文件中定义mysql信息不是很难吗?不是在每个文件中,而是在需要使用mysql的任何地方
const testSettings = "test Settings...";

module.exports = {
    test:testSettings
}
const mysql = require('mysql');

const connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'root',
    database : 'wordpress'
});

connection.connect(function(err) {
    if (err) {
        console.log(err); 
    }  
});
const mysql = require('mysql');

    const connection =

 mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : 'root',
        database : 'wordpress'
    });

    connection.connect(function(err) {
        if (err) {
            console.log(err); 
        }  
    });