1、全局安装:cnpm install -g sails

2、命令窗口进入项目位置

新建项目:sails new sails_cqwu --fast,选择2(快速建立sails项目)



3、cd进入sails下面项目,npm安装需要的安装依赖包

cd sails_cqwu
cnpm install 注:安装依赖包



4、在sails项目里新建一个文件夹data用来存储数据,进入mongodb安装的bin目录,输入mongod命令启动mongodb数据库,数据存在data文件夹里面

mongod --dbpath F:\webItem\nodejs\sails_cqwu\data



注:monogodb默认端口为27017,如需修改,连接数据库的时候在后面加入端口号,如

mongod --dbpath F:\webItem\nodejs\sails_cqwu --port=2700

5、回到sails项目里,连接mongo数据库

(1)安装需要的包

cnpm install sails-mongo --save

注:如果是mysql数据库,则也需要安装

cnpm install sails-mysql --save

(2)修改数据库文件config->datastores.js文件,如果只用一种数据库,直接写到默认里面

<!--config/datastores.js-->
module.exports.datastores = {
default: {//默认使用MySQL数据库
adapter: 'sails-mysql',
url: 'mysql://user:password@localhost:3306/my_db_name',
},
mongoDb: {//使用mongo数据库
adapter: 'sails-mongo',
url: 'mongodb://root:@localhost:27017/shop'//后面是数据库名
}
};

注:mongodb数据库无需手动创建数据库,在这里写了代码之后系统自动创建

(3)新建model,实际上创建表或集合,我新建了一个news集合

sails generate model news

(4)修改模型文件,在config->models.js

<!--config/models.js-->
schema: true,//严格匹配数据表的模式,
migrate: 'alter',//在尽量不丢失数据的情况下,允许sails修改表的结构
attributes: {
createdAt: { type: 'number', autoCreatedAt: true, },//数据创建时间,自动生成
updatedAt: { type: 'number', autoUpdatedAt: true, },//数据更新时间
//id: { type: 'number', autoIncrement: true, } 注:mysql使用
id: { type: 'string', columnName: '_id' }//mongodb使用,两者只能用其一
}
//允许sails自动添加三个字段,即共有的数据

(5)让某个集合model有单独的模式,常用于mongodb集合,如我自己新建的news表,下面的数据就是news私有的成员(列);

如:<!--api/models/News.js-->
module.exports = {
attributes: {
title:{type:'string',required:true},
author:{type:'string',required:true},
content:{type:'string',required:true},
url:{type:'string',required:true}
},
};

6、在news集合里面创建一条数据,根据console的值判断数据库是否连接成功,params是一个json

  var row=await News.create(params).fetch();
res.send(row);

6、进入sails项目目录,启动项目:sails lift,浏览器访问:localhost:1337/admin/manage

注:前端访问端口为项目启动后小帆船下面的端口

sails连接monogodb数据库的更多相关文章

  1. nodejs要远程连接另一个主机上的monogodb数据库服务器

    我的mongodb是装在linux下的. 首先,先添加用户 1.首先在mongodb服务器主机上进行terminal命令行,输入 mongo 2.输入 use admin 进入用户管理数据库 3.db ...

  2. 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题

    起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...

  3. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  4. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  5. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  6. 【.net 深呼吸】连接Access数据库应注意的几点

    本地数据库可以有Y种选择,比如Sqlite.SQL Server Express.SQL Local DB.SQL Server CE.Access等,本文老周选用比较著名的Access本地数据库,在 ...

  7. nhibernate连接11g数据库

    我框架的数据映射用 nhibernate连接多数据库,这次又增加了oracle11g,负责开发的同事始终连接不上,悲催的sharepoint调试是在不方便... 下面描述下问题的解决,细节问题有3个: ...

  8. pycharm连接mysql数据库

    新的环境配置pycharm的项目时,发现pycharm不能连接到mysql数据库.由于安了java环境但是还没配置相关的库,并且jetbrains家的IDE一般都是java写的,于是猜想可能是java ...

  9. Windows操作系统下远程连接MySQL数据库

    用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...

随机推荐

  1. Android--在Android应用中愉快地写C/C++代码(转)

    1 前言 一直想在android层面写c进程,然后java可以与c进程交互,以前在android源码中想玩就可以直接在init.rc中加上交叉编译好的c进程就可以了,而在ide中,也就是ndk编译后各 ...

  2. MongoDB 通过自带工具命令进行备份表,再将备份表还原出数据

    创建一个bat文件 在其中输入以下3行 第1行进入工具mongodump所在的目录 第2行 将Adam数据库里面的 第3行 将上面存在C:\Data\Dump\Adam\文件夹里面的TBLQuickS ...

  3. 简明Python3教程 7.运算符和表达式

    简介 你写的大多数逻辑行都包含表达式.表达式的一个简单例子是2 + 3.一个表达式可分为操作符和操作数两部分. 操作符的功能是执行一项任务:操作符可由一个符号或关键字代表,如+ .操作符需要数据以供执 ...

  4. OpenGL(二十四) VAO、VBO和着色器使用示例

    1. 新建一个工程,新建一个头文件Shader.h,内容如下: #ifndef _SHADER_H_ #define _SHADER_H_ #include <vector> #inclu ...

  5. hdoj 5087 Revenge of LIS II 【第二长单调递增子】

    称号:hdoj 5087 Revenge of LIS II 题意:非常easy,给你一个序列,让你求第二长单调递增子序列. 分析:事实上非常easy.不知道比赛的时候为什么那么多了判掉了. 我们用O ...

  6. Android在putString和getString使用方法

    函数: putString(String key,String value); 功能:将键为key的值为value. 详细的容器详细考虑比如对于Editor 的对象来讲: 代码例如以下: 首先新建一个 ...

  7. Qt移动应用开发(六):QML与C++互动

    Qt移动应用开发(六):QML与C++互动 上一篇文章讲到了在Qt Quick中实现场景切换的一种可能的方法,场景切换是诸如游戏等应用在内必需要面临的技术难点,所以场景切换并没有通行的方法,依据自己的 ...

  8. uboot通过使用U磁盘引导内核RT5350成功

    今天,在下次尝试使用16G 的u菜.这让两个分区,A位于zimage.一家商店rootfs:在uboot加载分区zimage并成功推出! RT5350 # fatload usb 0:1 0x80c0 ...

  9. 图形化界面安装oracle报错Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set.

    问题描述: 在Linux + oracle 安装时,采有root 帐号登录x-windows 界面,然后 $su oracle 登录录安装Oracle 报以下错误: >>> Coul ...

  10. 一次 .NET Core 中玩锁的经历:ManualResetEventSlim, Semaphore 与 SemaphoreSlim

    最近同事对  .net core memcached 缓存客户端 EnyimMemcachedCore 进行了高并发下的压力测试,发现在 linux 上高并发下使用 async 异步方法读取缓存数据会 ...