NodeJS识别一次

时间:2017-07-05 21:12:23

标签: javascript node.js

我想要变量识别一次;

├──project_folder

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

| └──rouler/ index.js

app.js

<ChildComponent onClick={() => somefunc("foo")} />

index.js

const express = require('express');
const app = express();
const path = require('path');
const router = require('./router/index');
const mysql = require('mysql');

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use('/',router);

app.listen( 8000, function(){
    console.log( 'Server listening on * 8000' );
});

错误:未定义mysql

我不想再识别mysql和其他变量。

我该如何解决?

感谢您的帮助。

解决

创建settings.js 在文件中定义设置

实施例

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

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

在您想要的文件中 要求(” ./设置);

使用:settings.test

3 个答案:

答案 0 :(得分:0)

您需要导入所需的模块:

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); 
    }  
});

答案 1 :(得分:0)

您只需要在index.js文件中 require('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

修改

有关模块的详细说明,请参阅此链接:https://nodejs.org/api/modules.html

答案 2 :(得分:0)

正如其他人的回答所指出的那样,你应该使用&#39; require()&#39;当你想在文件中访问它时。

如果您询问如何初始化数据库连接而不在每个文件中初始化数据库连接,则可以为数据库连接创建模块。

查看Dave关于此主题how does createConnection work with nodeJS in mysql?

的回答