如何在Node Js Express Jade JavaScript App中创建数据库

时间:2013-12-25 19:54:05

标签: javascript node.js express

已更新

我对此进行了进一步的研究。 Web应用程序正在使用node-db-migrate软件包。有一个迁移文件夹,包含两个迁移(使用表创建)。由于我只是git克隆它,我确信我需要运行它,当我点击npm-list时,我的机器上安装了node-db-migrate。

我进入此文件夹并点击db-migrate-up并尝试db-migrate-up [filename],但我收到-bash: db: command not found

我在node-postgres包中使用它。它应该根据node-db-migrate文件加载database.json文件。

嗨,在我的data.coffee中,这里是第1行到第17行,根据命令行,它可能是有问题的数据部分。

uuid = require 'node-uuid'
fs = require 'fs'
_ = require 'underscore'
moment = require 'moment-timezone'
apis = require '../logic/apis'
q = require 'q'

data = (_.chain fs.readdirSync "data")
    .map (filename) ->
        "data/" + filename
    .map (f) ->
        fs.readFileSync f, "utf8"
    .map (p) ->
        JSON.parse p
    .sortBy (json) ->
        -json.intlFormatDateTime
    .value()

您好我来自ruby / rails / sinatra背景。我刚刚继承了一个javascript网络应用程序,我将重写后端。

我只想尝试在本地启动应用程序

我做了

coffee app.coffee -n 

但我收到以下错误。

Error: ENOENT, no such file or directory 'data'
  at Object.fs.readdirSync (fs.js:654:18)
  at Object.<anonymous> (/Users/judyngai/Desktop/twiage/twiagemed/nodejs/routes/data.coffee:8:17, <js>:16:22)
  at Object.<anonymous> (/Users/judyngai/Desktop/twiage/twiagemed/nodejs/routes/data.coffee:1:1, <js>:226:4)
  at Module._compile (module.js:456:26)
  at Object.loadFile (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:182:19)
  at Module.load (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:211:36)
  at Function.Module._load (module.js:312:12)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/Users/judyngai/Desktop/twiage/twiagemed/nodejs/app.coffee:3:8, <js>:8:10)
  at Object.<anonymous> (/Users/judyngai/Desktop/twiage/twiagemed/nodejs/app.coffee:1:1, <js>:76:4)
  at Module._compile (module.js:456:26)

在app.coffee文件中有这三行代码

express = require 'express'
routes = require './routes'
data = require './routes/data'

我已经在package.json文件中安装了所有依赖项,但是有一个附带此行的database.json文件

{  "dev": "postgres://twiage_db_user:twiage_db_password@localhost/twiage_db" }

如何创建此数据库?通常在轨道中它是rake db:create。我觉得这可以解决问题。

1 个答案:

答案 0 :(得分:1)

它尝试读取缺少的“data”目录。 cwd + ./data/是否存在?此外,通常使用相对于脚本的路径__dirname变量:

dataDir = __dirname + "/data"
data = (_.chain fs.readdirSync dataDir)
    .map (filename) ->
        dataDir + "/" + filename
    .map (f) ->
        fs.readFileSync f, "utf8"
    .map (p) ->
        JSON.parse p
    .sortBy (json) ->
        -json.intlFormatDateTime
    .value()