hackathon——nodejs第三着登录实例(持续创新)

花色地址

前言

于一个类别达成客户要求念取office online server
2016底对文档的备考信息,如下图:

图片 1

以前思路老纠结在OOS这个在线上,总有道是消息囤积在某某列表中,其实错了,这个备注信息实际就是是word文档的备考信息,微软行使openxml开发之OOS,因此自吧以openxml读取备注信息的思绪开展尝试,结果发现原是可的,成功效应图如下:

图片 2

注意:

OpenXml格式只有office2007与上述版本才支撑之格式,如果office97-2003格式的文档是亚迈入制格式的文档,openxml无法展开这操作,需要因此代码另存为2007之上的格式。当然OOS在线编辑也非支持此office97-2003格式的文档进行备注信息,如下是office97-2003兼任容格式的文档在OOS果然不支持备注信息的编辑,无批注按钮,如下图:

 

 图片 3

 

以身作则页面

实现

1、 下载OpenXMLSDK2.5,如下下载地址:

https://www.microsoft.com/en-us/download/details.aspx?id=30425

图片 4

2、 下充斥了毕后,引用如下2独DLL,如下图:

图片 5

3、
具体代码如下:(注意,sp文档库的文档要改成成stream流的法门展开openxml操作)

 

StringBuilder sb = new StringBuilder();
            #region//spsite
            using (SPSite site = new SPSite("http://sp2016:8001"))
            {
                if (site != null)
                {
                    #region//spweb
                    using (SPWeb web = site.OpenWeb(""))
                    {
                        if (web != null)
                        {
                            Stream docStream = web.GetFile("http://sp2016:8001/DocLib1/测试文档.docx").OpenBinaryStream();

                            #region//openxml读取备注信息
                            using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(docStream, true))
                            {
                                //body
                                var body = wordDoc.MainDocumentPart.Document.Body;
                                //parts
                                var paras = body.Elements<Paragraph>();
                                //得到备注信息
                                Comments comments = wordDoc.MainDocumentPart.WordprocessingCommentsPart.Comments;
                                //循环备注信息
                                foreach (Comment item in comments)
                                {
                                    //内容
                                    string content = item.InnerText;
                                    //作者
                                    string userID = item.Author;
                                    //时间
                                    string createT = item.Date.Value.ToString("yyyy-MM-dd HH:mm:ss");
                                    //sb
                                    sb.Append("作者:" + userID + ",备注内容:"+ content +",时间:"+ createT +"\r\n");
                                }

                            }
                            #endregion
                        }
                    }
                    #endregion
                }
            }
            #endregion
            //赋值给textBox
        this.textBox1.Text = sb.ToString();

此文为翻译+简单的牵线,不当之处敬请指出

效果

图片 6

 

 

hackathon是运用oauth认证的一个类,目前支撑大部分国外主流网站

Modern Theme

Flatly Bootstrap Theme

API Examples

目录


  • 特性
  • 备下
  • 开始
  • 获得API
  • 文本结构
  • 动的保险
  • 实惠的工具和资源
  • 统筹资源引进
  • nodejs库推荐
  • 客户端库推荐
  • 技巧
  • FAQ
  • 其是怎么样工作之
  • Mongoose使用备忘录
  • 什么布置
  • 创新日志
  • 共同进步
  • 许可证

特性


  • 本土认证 使用Email和密码
  • OAuth 1.0a 认证 认证twitter
  • OAuth 2.0 认证 认证Facebook, Google, GitHub, LinkedIn, Instagram
  • Flash通知
  • MVC架构
  • Nodejs集群支持
  • Sass样式
  • Bootstrap 3 + Extra主题
  • 账号管理
    • 支持Gravatar
    • 个人资料细节
    • 反密码
    • 密码找回
    • 重置密码
    • 链接复杂的OAuth策略及一个账号上
    • 删去账号
  • CSRF保护
  • 栗子 Facebook, Foursquare, Last.fm, Tumblr, Twitter, Stripe,
    LinkedIn and more.

预备以


  • 急需安装MongoDB
  • 亟待设置Node.js
  • 哪些设置
    • Mac OS X:
      Xcode
      (or OS X 10.9+: xcode-select –install)
    • Windows: Visual
      Studio
    • Ubuntu /Linux Mint: sudo apt-get install build-essential
    • Fedora: sudo dnf groupinstall “Development Tools”
    • OpenSUSE: sudo zypper install –type pattern devel_basis

注意:苟您是node或者express的新家,建议先看Node.js and Express
101;另外,这还有一个于零基础初家对的科目:
Getting Started With Node.js, Express,
MongoDB.

开始


绝简易的不二法门尽管是自github上克隆下来啦

# Get the latest snapshot
git clone --depth=1 https://github.com/sahat/hackathon-starter.git myproject

# Change directory
cd myproject

# Install NPM dependencies
npm install

node app.js

注意:自身墙裂(●˘◡˘●)推荐安上Nodemon。用上它,当你对代码来反时,它见面活动还开服务,很有益于吧。安装后,开启服务不要采用node app.js,要使用nodemon app.js。这家伙会自启服务器,这样你不怕无须坐小改变而手动重开服务器了,大大节省时间啊。这样子安装:

sudo npm install -g nodemon

获得API


为能够使用APIS或者OAuth认证方式,你得预备以下东西:Client ID, Client
Secret, API Key, or Username &
Password。这些事物而需要寻找第三方去报名才能够赢得。

Hackathon Starter 2.0
:
自我都把栗子中具有的这些为好了,你嫌累,就一直用自身之吧。但是别忘了卿发表自己的网站或APP时,换上自己之照。

google申请方式

  1. 访问Google Cloud
    Console
  2. 点击Create Project(可以装中文习惯,那么就是是创建项目了)
  3. 填项目名称,点Create
  4. 点击应用,找到APIs & auth(API管理),点击上管理页面
  5. 在保管页面左边找到Credentials (凭据)
  6. 点击Create new Client ID按钮(创建凭据中的OAuth客户端ID)
  7. 点击Configure Consent Screen(配置同意屏幕)
  8. 按照自己的信填写好保存
  9. 紧接下信息这样填写
    • Application Type(应用项目): Web Application(网页应用)
    • Authorized Javascript origins(已收获授权的 JavaScript 来源):
      http://localhost:3000
    • Authorized redirect URI(已获授权的重定向 URI):
      http://localhost:3000/auth/google/callback
  10. 美妙保存ID和密钥

注意:当你打算开规范的采用时,请申请新的施用,不要动当地地址之运用


翻译:我以特别起平篇介绍每大网站申请流程,暂时介绍谷歌


文本结构


名称 描述
config/passport.js Passport本地和OAuth认证,一个登录认证中间件
controllers/api.js /api的路由管理,包含所有的api栗子
controllers/contact.js 控制连接表单
controllers/home.js 控制首页
controllers/user.js 用户账户管理
models/User.js 基于Mongoose的用户数据库操作的模块
public/ 一些静态文件(比如字体,图片,css,js)
public/js/application.js 指定客户端js依赖
public/js/main.js 这里放置你的客户端代码
public/css/main.scss 你的应用自写的样式
public/css/themes/default.scss 用了bootstrap让它看起来更漂亮
views/account/ 登录,密码重置和侧边栏的模板
views/api/ Api栗子的模板
views/partials/flash.jade 错误、提示和成功的提醒信息
views/partials/header.jade 导航栏模板
views/partials/footer.jade 页脚模板
views/layout.jade 基础模板
views/home.jade 主页模板
.travis.yml Travis CI 积分
.env.example 你申请的API Keys ,tokens, passwords和数据库链接
app.js 主体文件
package.json NPM 依赖

注意:公不肯定不要按照自己这样做,我只是提供一个板栗,你看怎么好就怎么来。

使用的保证

包名 描述
async 帮助你异步编程的模块
bcrypt-nodejs 可以hash和盐化密码
bitgo 比特币钱包Api
cheerio 使用jQuery语法的爬虫模块
clockwork 定时SMS模块
connect-mongo express链接mongodb
dotenv 从.env file.加载环境变量
express 著名的nodejs网页框架
body-parser express4的中间件
express-session express4的中间件
morgan express4的中间件
compression express4的中间件
errorhandler express4的中间件
serve-favicon express4的中间件
express-flash 给express提供flash信息支持
fbgraph FB图形API
github-api githubAPI
jade express的模板引擎
lastfm Last.fm API
instagram-node instagram API
lob lob API
lusca CSRF中间件
mongoose MongoDB ODM
node-foursquare Foursquare API
node-linkedin LinkedIn API
node-sass-middleware sass 中间件
nodemailer node发邮件组件
passport 简单而优雅的登录认证
passport-facebook 登录FB的插件
passport-github 登录github的插件
passport-google-oauth 登录google的插件
passport-twitter 登录twitter的插件
passport-instagram 登录instagram的插件
passport-local 本地登录验证
passport-linkedin-oauth2 登录linkedin的插件
passport-oauth 允许oauth登录验证
paypal-rest-sdk PayPal API
request 简单的HTTP请求模块
stripe Stripe API
tumblr.js Tumblr API
twilio Twilio API
twit Twitter API
lodash 一个便利的js库
validator controllers/api.js做验证控制
mocha 测试框架
chai BDD/TDD
supertest HTTP
yui yahoo API

实惠之家伙与资源


  • JavaScripting –
    JS的数据库
  • JS
    Recipes –
    对于js前后端的科目
  • Jade Syntax Documentation by
    Example –
    比Jade官方更好之文档
  • HTML to Jade
    converter –
    让你再度快之于网页上复制和粘贴html
  • JavascriptOO –
    一个JS库的目录
  • Favicon
    Generator –
    适用于PC, Android, iOS, Windows 8的图标生成器

筹资源推荐


  • Code Guide –
    灵活、耐用、可不止的HTML和CSS标准
  • Bootsnipp –
    一些适用于bootstrap的代码有
  • UIBox – 编排HTML,
    CSS, JS, UI组件
  • Bootstrap
    Zero –
    免费的bootstrap模板
  • Google
    Bootstrap –
    google样式的bootstrap
  • Font Awesome
    Icons –
    早已是 Hackathon Starter的均等片
  • Colors –
    一个非常棒的在线调色板
  • Creative Button
    Styles –
    丰富多彩的按钮样式
  • Creative Link
    Effects –
    漂亮的链接样式
  • Medium Scroll
    Effect –
    当你滚动鼠标时,标题淡入淡出
  • GeoPattern –
    SVG背景样式生成器
  • Trianglify –
    SVG低多边形背景样式生成器

nodejs库推荐


  • Nodemon –
    代码改动服务活动还开
  • geoip-lite –
    IP查询地理坐标
  • Filesize.js –
    文件格式转换,比如filesize(265318); // "265.32 kB"
  • Numeral.js –
    格式化数据
  • Node
    Inspector –
    基于chrome开发者工具的调剂工具
  • node-taglib –
    读取流行的音频格式
  • sharp –
    调整 JPEG, PNG, WebP , TIFF等图片格式

客户端库推荐


  • Framework7 –
    创建IOS7 App的华美而且成就的库
  • InstantClick –
    通过在鼠标悬停时先加载页面来增强页面访问速度
  • NProgress.js –
    类似YouTube和Medium上的速长条
  • Hover –
    特别棒的鼠标悬停CSS3样式动画
  • Magnific
    Popup –
    基于jQuery的响应式灯箱插件
  • jQuery
    Raty –
    评分插件
  • Headroom.js –
    如果未需要头文件,自动隐藏
  • X-editable –
    以内联元素里直接改动
  • Offline.js –
    检测用户网络状态是不是离线
  • Alertify.js –
    优化alert和浏览器对话框样式
  • selectize.js –
    优化select元素和input标签样式
  • drop.js –
    适用于下拉框和其它浮动元素的有力的js和css库
  • scrollReveal.js –
    揭示动画

技巧


  • 当装模块时,可以加上–save,这样子就会自行写副package.json了
    例如 npm install --save moment

  • 当你出差不多只异步任务要开展,可以利用
    async.parallel()
    选举个情景栗子,你或许需要以一个回页面模板之前,生成的多寡要3独出相关性的操作,这个时节你虽待是了

  • 于屡次组吃找到一个特地之目标? 你用
    _.find
    .
    推个例证, 从数据库被取出一个twitter对象:
    var token = _.find(req.user.tokens, { kind: 'twitter' });

FAQ


当自家付诸表单时,出现403误

而要丰富一个隐身的input元素在你的表单里
input(type='hidden', name='_csrf', value=_csrf)
可参照pull request
#40

注意
现在可能的由来呢时有发生URL白名单了,换句话说,你可指定一个专门之路由来经过CSRF验证

注意 2
对于动态URL白名单,如果您的代码含有req.originalUrl汝要定期测试

MongoDB连接错误,我如何修复

夫大的错误信息来自于app.js

mongoose.connection.on('error', function()
 { console.error('MongoDB Connection Error. Please make sure MongoDB is running.');
});

每当运行app.js之前,你的MongoDB服务要启动
可以在这里下载MongoDB,如果您是windows用户,那么移步这里.

小贴士:如果您总是用连续互联网,你可用
mLab 或者
Compose来顶替本地安装数据库,这样你仅仅需要在.env文本里创新数据库就行了。

当自己安排下时,提示错误

或者而未曾改动本地数据库链接。
比方您于使用的是故本地链接,那么你只能当地头利用数据库;当您安排于Heroku,OpenShift或者其他的阳台及时常,你的数据库无法运行于localhost的链接下。