Famo.us连接到MySQL

Eri*_*Ven 0 mysql node.js requirejs famo.us

我正在尝试通过Famo.us连接MySQL数据库.但我无法完成它.该应用程序的文件夹结构如下所示:

  • 应用程序(实际上famo.us应用程序)
    • 内容(图像等)
    • LIB
    • SRC
      • main.js(实际应用)
      • requireConfig.js
    • 款式
    • 咕噜
    • node_modules

main.js

/*globals define*/
define(function(require, exports, module) {
    'use strict';
    // import dependencies
    var Engine = require('famous/core/Engine');
    var ImageSurface = require('famous/surfaces/ImageSurface');
    var StateModifier = require('famous/modifiers/StateModifier');

    // create the main context
    var mainContext = Engine.createContext();

    // your app here
    var logo = new ImageSurface({
        size: [200, 200],
        content: '/content/images/famous_logo.png'
    });

    var logoModifier = new StateModifier({
        origin: [0.5, 0.5]
    });

    mainContext.add(logoModifier).add(logo);
});
Run Code Online (Sandbox Code Playgroud)

因为它在节点上运行我试图成功地在node_modules文件夹中安装mysql node_module.但我无法连接到它,因为如果我尝试在main.js中要求mysql with require('mysql'),它认为我想从src文件夹中尝试一个js文件.我不能直接指向node_modules文件夹,因为它也给我一个404错误,根据famo.us'文档,它不是这样做的.

所以我试着用这种方式将mysql代码添加到main.js,但它也没有工作:mysql node:

require(['mysql'], function(mysql) {
    //foo and bar are loaded according to requirejs
    //config, but if not found, then node's require
    //is used to load the module.

    //Now export a value visible to Node.
    var connection = mysql.createConnection({
      host     : 'localhost',
      user     : 'root',
      password : 'test',
      database : 'app'
    });

    window.console.log(mysql);
});
Run Code Online (Sandbox Code Playgroud)

requireConfig.js

/*globals require*/
require.config({
    nodeRequire: require,
    shim: {

    },
    paths: {
        famous: '../lib/famous',
        requirejs: '../lib/requirejs/require',
        almond: '../lib/almond/almond',
        'famous-polyfills': '../lib/famous-polyfills/index'
    }
});
require(['main']);
Run Code Online (Sandbox Code Playgroud)

我之前没有将requireJS与Node结合使用,而且Famo.us很新,所以他们还没有连接mysql数据库的文档.所以我很失落.有谁知道可能解决这个问题?

Kra*_*ker 7

你可能只是从错误的角度看待这个问题.Famo.us是一个客户端动画和物理引擎.它不打算在服务器上使用.Famo.us也完全是后端不可知的,因为它并不在乎真正想知道服务器端发生了什么.

您在着名代码中看到的'require'功能与节点中的'require'不同.当RequireJS不同时,Node使用CommonJS模块模式.这在这里有更详细的解释.

简而言之,你的问题是你正试图让客户端代码做服务器端的东西,这是不对的.您的节点服务器应该服务于所需的所有客户端文件,并且对数据库之类的事情发出请求,客户端应该向服务器发出API请求以执行某些操作.理想情况下,您希望使用客户端MVC(Backbone,Ember,Angular)来进一步防止数据污染处理演示文稿的代码.famo.us的例子现在还没有真正涉及到它.