【问题标题】:How to connect an EmberJS front-end with an NodeJS Express API?如何将 EmberJS 前端与 NodeJS Express API 连接起来?
【发布时间】:2016-02-25 22:18:52
【问题描述】:

我正在开发一个 MEEN-stack(MySQL、EmberJS、Express 和 NodeJS)项目。我从来没有和 Ember 一起工作过。我唯一的前端经验是 jQuery。

项目分为多个文件夹,前端(Ember)在一个文件夹中,Express API 在另一个文件夹中。前端将处理网页中的加载,同时将请求发送到 Express API 以进行数据库请求/身份验证/更多。

我目前能够在网页的静态 javascript 文件中使用 jQuery 的 Ajax 方法通过显式 URL 连接两个服务器(同时允许 CORS 并在 app/config 中修改 Ember 环境文件)。

我的困惑是肯定有一个更优雅的解决方案来连接这两者,但我不知道如何去做。

通过查看教程,我尝试在 Ember 前端应用程序/适配器文件夹中添加一个 application.js 文件:

import DS from "ember-data";

export default DS.RESTAdapter.extend({
    host: 'http://localhost:9029',
    namespace: 'api'
});

但我不具备完全实施或测试它的知识。我错过了什么?如何利用适配器文件?

【问题讨论】:

    标签: javascript node.js rest ember.js


    【解决方案1】:

    当你开始使用 ember 时:

    ember server --proxy 'http://localhost:9029'
    

    假设您的节点服务器在您使用代理启动 ember 服务器时从 http://localhost:9029 为您的 api 提供服务,ember-cli 将启动一个非常简单的节点代理,该代理将在您开发时代理您的请求。

    然后你可以从你的adapter.js文件中删除主机

    import DS from "ember-data";
    
    export default DS.RESTAdapter.extend({
        namespace: 'api'
    });
    

    如果你想要简洁:

    ember s -pxy 'http://<YOUR LOCAL SERVER AND PORT>'
    

    【讨论】:

    • 不错!做到了。您原来的帖子中的注释:当我尝试实施时,我在 iterm 中遇到了这个错误。 FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() 我不得不重新启动我的 Macbook (Yosemite),因为即使只有 ember s 也会不断发生错误您所做的编辑能够满足我的要求。有什么理由吗?另外,既然已经建立了命名空间,那么除了静态js文件中的jQuery调用之外,还有什么方法可以调用express API呢?
    猜你喜欢
    • 2019-11-13
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多