I'm using Ember CLI 0.0.36. When I run ember server
in my project folder, my understanding is that a server buried in some Brocoli process gets started. However I would like to program a custom Express server and have my app point to that Node.js code for its backend. How would I go about doing that within the Ember CLI framework?
UPDATE:
Following @user3155277's answer, I added an adapter file like so:
app-name/app/adapters/application.js:
import DS from 'ember-data'; export default DS.RESTAdapter.reopen({ namespace: 'api' });
I created an Express server that I put at the root of my app:
app-name/server.js:
var express = require("express"), app = express(), path = require("path"); app.get("/api/test", function(req, res) { res.json({ hello: "world" }); }); var server = app.listen(8147);
In the Ember app, my index route is defined as so:
app-name/app/routes/index.js:
import Ember from 'ember'; export default Ember.Route.extend({ model: function() { return Ember.$.getJSON("/api/test").then(function(data) { return data; }); } });
On the command line I then start the server like so:
ember serve --proxy http://localhost:8147/
I get the following error:
version: 0.0.35-master-86abdb11ba Proxying to http://localhost:8147/ object is not a functionTypeError: object is not a function at Class.module.exports.Task.extend.start (D:\ember-cli\lib\tasks\server\express-server.js:41:43) at Class.module.exports.Task.extend.run (D:\ember-cli\lib\tasks\serve.js:40:23) at Class.module.exports.Command.extend.run (D:\ember-cli\lib\commands\serve.js:35:18) at Class.Command.validateAndRun (D:\ember-cli\lib\models\command.js:74:15) at CLI. (D:\ember-cli\lib\cli\cli.js:33:20) at tryCatch (D:\ember-cli\node_modules\rsvp\dist\commonjs\rsvp\-internal.js:163:16) at invokeCallback (D:\ember-cli\node_modules\rsvp\dist\commonjs\rsvp\-internal.js:172:17) at publish (D:\ember-cli\node_modules\rsvp\dist\commonjs\rsvp\-internal.js:150:13) at flush (D:\ember-cli\node_modules\rsvp\dist\commonjs\rsvp\asap.js:51:9) at process._tickCallback (node.js:419:13)Livereload server on port 35729